coding test
coding test
coding test
coding test
coding test
coding test
codingtest
coding test
coding test
codingtest
coding test
coding test
coding test
coding test
coding test
coding test
codingtest
coding test
coding test
coding test
coding test
coding test
coding test
coding test
codingtest
3/28 8pm
4/1 12:00
4/2 10pm
pm 1:00
4/8 19pm
pm 18:00
pm 19:00
pm 20:00
pm 10:00
pm 9:00
am 7:30
피보나치 함수 피보나치 함수를 구하는 재귀함수 소스를 준다. 이 문제는 피보나치 함수의 재귀적 함수가 호출하는 fibo(0)과 fibo(1)이 몇 번 호출되는지 알아보라는 문제인데, 만약 저기 코드에서 return 0, 1이 되기전에 count변수를 줘서 countZero, countOne에 호출될 때 마다 숫자를 쌓아가게 되면 시간초과 에러가 뜰 것이다...
4조각으로 잘라서 Object배열에 int로 넣어 리턴하는 메서드 종이 이중배열이 1로만 차있는지, 0으로만 차있는지 1,0으로 차있는지 확인해서 0,1,2로 리턴 해주는 메서드 스택 자료구조로 process를 만들고 첫번째 종이를 넣는다. while을 통해 process에 이중배열이 아무것도 없다면 while이 끝난다. while내부에서 스택에서 p...
dp스럽게 풀면 된다. 예를 들어 front 배열이 1,2,3 이고 next배열이 2,3,4,5 라면 next배열을 기준으로 생각한다. next배열의 첫번째와 끝 인덱스는 front배열의 첫번째와 끝 인덱스로 조회해서 더해서 새롭게 업데이트될 front_임시 배열에 append한다. 나머지는 front[index-1], front[index] + nex...
BOJ
BFS 구현
boj
알고리듬
visited는 DP방식으로 구성하고, BFS를 돌려주면 된다. 조회의 횟수가 부담이 되는 문제이다(메모리는 많지만 시간은 짧은 문제). 조회를 줄이기 위해 break 조건을 기준으로 코드를 작성하고 break 조건을 다 피했을 때 추가하는 코드로 짰다면 더 짧은 시간내에 풀지 않았을까 싶다. 방향은 무조건 4개이고 K는 1000까지 커질 수 있으므로 ...
boj
boj
계속 읽어보니 그래프 + 구현 느낌이었음. 전염병처럼 번져나가는 스타일이네? -> BFS 이지 않을까 초기 제시로 준 아이들로 돌릴 deque 구성하고 deque가 빌때까지 BFS로직 돌려주면 된다. for문이 굉장히 많이 중첩되는데 party같은 객체 안만들고 하면 줄일 수 있지만 굳이? 문제 제시된 N,M 숫자 너무 작았음. 플로이드 알고리즘 같은것...
한 타임당 미세먼지가 확산된다. 확산은 미세먼지가 있는 모든 칸에서 동시에 일어난다. (r, c)에 있는 미세먼지는 인접한 네 방향으로 확산된다. 인접한 방향에 공기청정기가 있거나, 칸이 없으면 그 방향으로는 확산이 일어나지 않는다. 확산되는 양은 Ar,c/5이고 소수점은 버린다. 즉, ⌊Ar,c/5⌋이다. (r, c)에 남은 미세먼지의 양은 Ar,c...
최적해 찾기 문제 -> DP일 확률 높음 제한시간 짧고, 예시를 그려보면 최대 연산이 3x2^1000이 나옴. 모든 경우의 수 돌면 미친 짓이라는 것을 바로 알 수 있음. 점화식을 찾기 위해 N=1~3정도까지는 그려볼만함 -> 아이디어 얻기용 결국 목표한 N에서 그
이진트리 직접 구현 add 구현해서 전위 순회로 주어지는 값들 새로운 트리에 집어넣기 (재귀 방식) search 후위순회로 구현 재귀에만 익숙하면 금방 풀 수 있는 문제 딱히 할말이 없다
hell
그래프 문제임을 확인, 최단경로 문제임을 확인, 음의 간선 없음 확인 -> 다익스트라 인접연결리스트로 구현 -> 시간 줄이기용 다익스트라 start 노드 설정만 필요, 음의 간선 없어야 함, 최단 경로 문제여야 함. dp는 모두 INF값으로 초기화후 start 인덱스에만 0부여 start 노드에서 뻗어나가는 간선을 체크하여 dp(노드 비용 담은)에...
시간초과 : 최대 크기 2^15 x 2^15의 2차원 배열이므로 모두 계산할 경우 시간초과가 발생한다. target Row, Col을 활용하여 계산하지 않고 넘어가는 방법 도출 필요 메모리초과 : 2차원 배열을 실제로 사용하면 안된다. 2^15x2^15 2차원 배열의 메모리는 대략 4GB를 가진다. 32768 x 32768 x 4 바이트(int) = 4...
실버1정도인가?.. 이진트리구조 빠르게 구현하기 연습하기에 좋은 문제, 클래스 채울려고 풀었다. 시간적 압박이 없어서 객체지향적으로 잘 구현하면 금방 풀 수 있음.
시간, 메모리를 크게 고려안해도 되는 문제 : N, M이 작음, 최대 100x100 같혀있는 0과 테두리와 연결된 0을 구분하는 로직이 우선 필요 두 변이 테두리와 연결된 0과 연결된 경우의 1을 3으로 바꾸기 -> BFS로 처리 3을 0으로 바꾸고 -1을 0으로 바꾸기 위 과정 3이 처리 안되는 시점까지 반복해주기
max 배열의 길이 100000은 주어진 메모리상 충분히 커버가 가능함. visited로 100002짜리 배열을 선언해주고 하나의 경우마다 3개의 다음 경우를 만드는데 이때 적절한 제한을 두어 최대한 쓸데 없이 다음 경우를 만드는 것을 억제해야 한다. 다음 경우의 위치가 마이너스가 되는 경우는 필요없으므로 deque에 넣지 않는다. 다음 경우가 목표 위...
자원 : 주어진 시간 2초, 메모리 512mb (매우 많이 줌.) 비용 : 최대 8 * 8 배열 (64개 데이터) 2차원 맵 자체가 매우 작은데 시간과 메모리를 많이 줬으므로 브루트포스를 대강 예상을 하고, 문제를 보면 3개의 벽을 놓는 경우를 최적화해서 찾기 쉽지 않을 것이 느껴진다 -> 바로 전체 조회 마인드로 코드를 짠다. 벽을 놓을 경우의 수 ...
조합, 백트래킹, BFS
분할정복
dp = index는 쌓인 가격, value는 최댓값 경우의 수대로 모두 조사하되 다음 단계 값에서 max 가격을 오버하거나 value가 기존 dp보다 적은 값일 경우 다음 process에 참가시키지 않음. 한 스탭의 프로세스에서 여러 같은 size가 존재할 수 있는데 살아남는 것은 그 중 max price이므로 process 본 로직을 돌리기전에 이를...
bfs 두개 만들기 문제