일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- next14
- 리액트
- 분할정복
- 수학
- 동적타입언어
- 두 포인터
- 즉시실행함수
- 레이아웃 스래싱
- 이벤트 생명주기
- 슬라이딩 윈도우
- webpack5
- 마진 상쇄
- 재귀
- 누적합
- 이분탐색
- react18
- SW EA
- 공백찾기
- 렌더링 최적화
- 백준
- 정적타입언어
- react
- BFS
- vscode
- 브루트포스
- 구현
- 레퍼런스복사
- webpack
- 값복사
- 컴포넌트 생명주기
- Today
- Total
목록전체 글 (45)
D.JOUNG

문제 : https://www.acmicpc.net/problem/2573 시간 제한메모리 제한난이도알고리즘 분류1초256 MBGold 4BFS 문제 풀이 보자마자 bfs를 사용해야겠다고 생각하게되는 나름 직관적인 문제다. 하지만 풀이법이 대강 생각나도, 실제 구현하는 부분에서 자잘한 오류가 발생하는 등 어려움이 있었다. 막막함을 조금이라도 줄여보고자 문제 풀이를 글로 작성하는 것 부터 시작했다. 1. 1년 후의 빙산 상태를 계산하여 저장한다.2. 1년 후 빙산들이 두 조각 이상으로 분리되었는 지, 완전히 녹아 없어졌는 지, 아직 한 덩이인 상태인 지 체크한다.3-1. 완전히 녹아 없어졌거나 두 조각 이상으로 분리되었다면 반복문을 탈출한다.3-2. 아직 한 덩이인 상태라면 1-3번을 다시 실행한다...

문제 : https://www.acmicpc.net/problem/12852 시간 제한메모리 제한난이도알고리즘 분류0.5초512 MBSilver 1다이나믹 프로그래밍 문제 풀이0.5초의 시간제한이 있는 문제다. N의 범위는 1부터 10의 6승까지이므로 반복문 중첩을 피할 수 있는 방법으로 풀이를 생각해봐야 한다. 특정 숫자 N이 주워졌을 때 최단 횟수로 1로 만들어지는 과정을 직접 샤프로 써가며 정리해본다. N = 1010 → 9 → 3 → 1 N = 99 → 3 → 1 N = 88 → 4 → 2 → 1 N = 77 → 6 → 3 → 1 (이하 생략..) 숫자 네 개를 정리했을 뿐인데도 벌써 규칙이 보인다. 예를 들어 10의 경우, N이 9인 경우에서 맨 앞에 10이 붙었을 뿐이다. 이처럼 각 숫자..

문제 : https://www.acmicpc.net/problem/1722 1722번: 순열의 순서첫째 줄에 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄의 첫 번째 수는 소문제 번호이다. 1인 경우 k(1 ≤ k ≤ N!)를 입력받고, 2인 경우 임의의 순열을 나타내는 N개의 수를 입력받는다. N개의 수에는 1부터 Nwww.acmicpc.net 시간 제한메모리 제한난이도알고리즘 분류2초128 MBGold 5조합, 수학, 구현 문제 풀이 소문제 1과 소문제 2로 나뉘어있지만 비슷한 방법으로 풀 수 있다. 무식하게 수열을 생성해 풀이하기에는 시간도 메모리도 부족할 것이라 계산해서 풀어야 한다. 핵심은 i 번째 숫자가 바뀌기 위해서는 (N-i)! 개의 순열을 지나야 한다는 법칙에 있다. 예를 들어 순열..

문제 : https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에 www.acmicpc.net 시간 제한 메모리 제한 난이도 알고리즘 분류 2초 256 MB Gold 4 그래프, 문제 풀이 이분 그래프인지 판별하려면 시작 노드를 하나 정하고, 근처 노드를 지나가며 두 가지 색을 차례대로 칠해나가면 된다. 그 과정을 반복하다보면 마지막 노드에 도착할 때까지 무탈한 그래프가 있고, 중간에 같은 색을 칠해야하는 모순이 발생하는 그래프가 있다. 모순이 발생하지 않고 무사히 순회가 종료된다..
프로그래밍의 값 복사는 '깊은 복사', '얕은 복사' 두 종류가 있는데, 적당히 설명하자면 주소값을 복사해가 두 변수가 한 인스턴스를 가리키게 되면 얕은 복사, 값 자체를 복사해 메모리에 주소 영역이 하나 더 생기면 깊은 복사라고 구분할 수 있다. 각각 다른 말로 '값 복사', '레퍼런스 복사' 라고 부르기도 한다. 아주 간단한 예시를 들자면 아래와 같다. int a = 1; int *b = &a; //얕은 복사 //--// int a = 1; int b = a; //깊은 복사 변수가 저장한 값이 리터럴일 경우 손쉽게 깊은 복사를 사용할 수 있지만, 배열 같은 자료 구조의 형태가 되는 순간 깊은 복사보다는 얕은 복사를 주로 사용하게 된다. 당장 배열 자료구조의 경우 두 변수를 '=' 기호로 잇는 것 처럼..

componentDidUpdate와 componentWillUnmount는 클래스 컴포넌트에서 사용하는 생명주기 관리 메소드, useEffect는 함수 컴포넌트에서 사용하는 생명주기 관리 Effect hook이다. 공식 문서를 조금이라도 깔짝여본 적이 있다면 useEffect를 componentDidUpdate와 componentWillUnmount의 역할로 이해해도 괜찮다고 적시한 내용을 기억할지도 모른다. 하지만 위 두 함수와 useEffect가 완벽하게 동일한 역할을 한다면 모순되는 부분이 보이기 시작했다. 아무래도 자세한 이해가 부족한 것 같아 미뤄뒀던 공식 문서의 다음 장을 읽기 시작했다. 클래스 컴포넌트의 두 함수와 useEffect의 차이를 명확하게 이해하기 위해서는 먼저 두 컴포넌트의 생명..

자바스크립트는 클릭, 드래그, 키(KEY) 다운 등 사용자가 HTML DOM과 상호작용 할 수 있는 다양한 브라우저 이벤트를 지원하고 있다. 그 중 html 태그의 onClick 속성과 onContextMenu 속성은 각각 클릭과 우클릭 이벤트 발생 시 작동할 이벤트 핸들러를 속성값으로 갖는다. 이벤트 버블링과 이벤트 캡쳐링은 DOM 트리를 타고 전달되는 이벤트 객체의 이동 단계로, 이벤트 객체는 캡쳐링 단계인지 버블링 단계인지에 따라 부모 혹은 자식 요소로 전파된다. 쉽게 생각해서 각 요소에서 이벤트가 발생하는 순서라고 이해해도 괜찮을 듯 싶다. 웹3(w3.org) 공식 사이트에서는 이벤트 객체의 전이 단계와 순서를 다음과 같이 정의하고 있다. (1) 캡쳐링 단계 (Capture Phase) 에서는 w..

문제 : https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 시간 제한 메모리 제한 난이도 알고리즘 분류 1초 192 MB Silver 1 그래프, BFS 문제 풀이 그래프 경로 탐색에서 최단 거리를 구하는 문제이다. 목표 지점까지 도달하는 경우의 수를 구하는 문제라면 한 라인을 끝까지 검사하는 DFS가 적합하겠지만, 해당 문제는 최단 거리를 요구하고 있으므로 모든 가능 경로를 한 노드씩 번갈아가며 점검해나가는 BFS가 시간복잡도 측면에서 훨씬 적합하다. 게다가 시간 제한을 1초..

문제 : https://www.acmicpc.net/problem/2023 2023번: 신기한 소수 수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다. 7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수 www.acmicpc.net 시간 제한 메모리 제한 난이도 알고리즘 분류 2초 4 MB Gold 5 수학, 정수론, 백트래킹 문제 풀이 소수 구하는 문제를 마주쳤을 때 가장 먼저 떠오르는 풀이법은 에라토스테네스의 체이다. 하지만 소수인지 판별해야하는 수의 최대값은 99,999,999 이므로, 에라토스테네스의 체로 1부터 99,999,999 까지의 판별 정보를 저장하기 위해서는 4MB가 넘는 크기의 배열이 ..

문제 : https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 시간 제한 메모리 제한 난이도 알고리즘 분류 1초 256 MB Gold 5 분할정복, 재귀 문제 풀이 3을 N으로 줬을 때 출력되는 패턴이 재귀적으로 반복되고 있다. 패턴을 분석해보면 아래와 같다. 1. 한 변의 출력 개수는 N개이다. (* or ' ') 2. N*N 개의 출력으로 이루어진 크기 N의 패턴을 한 줄에 3 부분 씩 9 부분으로 나누면, 각 부분에서..