Closed proysm closed 1 week ago
상담이 가능한 모든 경우의 수를 고려한다.
그리고 최대 이익을 구한다.
dfs를 이용하여 상담이 가능한 모든 경우를 고려한다.
N일 이상이 되면 최대 이익을 비교하고 dfs를 빠져나올 수 있다.
왼쪽으로 한 칸 이동, 오른쪽으로 한 칸 이동 하는 방법 중 더 적게 이동시킬 수 있는 방법을 선택한다.
매번 위의 경우를 고려하면 최소 연산이 가능하다.
c++ STL deque을 사용하면 앞 뒤에서 push와 pop을 할 수 있다.
정수 N이 소수인지 판별하는 방법은 루트(N) 이하의 자연수들 중(1제외) 나누어 떨어지는 수가 있는지 확인한다.
ex) 루트(11) = 3.xxx , 11은 3.xxx 이하의 자연수(2, 3)로 나누어 떨어지지 않는다. 따라서 소수라고 할 수 있다.
ex) 27을 포함하는 수열의 길이를 찾기 위해서 27을 시작점으로, 이상 이하의 수들 중 소수가 나올 때까지 탐색하고 그 길이를 구한다.
구멍이 뚫린 가장자리의 위치를 찾아서 녹여야한다.
(1, 1) 블록부터 치즈를 거치지 않고 상하좌우로 이동하여 방문이 가능한 노드를 가장자리라고 할 수 있다. -> 너비탐색
(1, 1) 부터 탐색하는 이유는 (1, 1)은 항상 치즈가 아니기 때문이다.
치즈가 모두 녹을 때까지 반복한다.
무게가 중간이 절대로 될 수 없는 경우는 자신보다 무거운 구슬이 (n+1)/2개 이상이거나 자신보다 가벼운 구슬이 (n+1)/2개 이상인 경우
깊이 탐색을 하여 자신보다 가볍거나 무거운 구슬의 개수를 계산한다.
고생하셨습니다!!!
고생하셨습니다 :)
14501 퇴사
핵심 풀이
상담이 가능한 모든 경우의 수를 고려한다.
그리고 최대 이익을 구한다.
알고리즘
dfs를 이용하여 상담이 가능한 모든 경우를 고려한다.
N일 이상이 되면 최대 이익을 비교하고 dfs를 빠져나올 수 있다.
1021 회전하는 큐
핵심 풀이
왼쪽으로 한 칸 이동, 오른쪽으로 한 칸 이동 하는 방법 중 더 적게 이동시킬 수 있는 방법을 선택한다.
매번 위의 경우를 고려하면 최소 연산이 가능하다.
알고리즘
c++ STL deque을 사용하면 앞 뒤에서 push와 pop을 할 수 있다.
3896 소수 사이 수열
핵심 풀이
정수 N이 소수인지 판별하는 방법은 루트(N) 이하의 자연수들 중(1제외) 나누어 떨어지는 수가 있는지 확인한다.
ex) 루트(11) = 3.xxx , 11은 3.xxx 이하의 자연수(2, 3)로 나누어 떨어지지 않는다. 따라서 소수라고 할 수 있다.
알고리즘
ex) 27을 포함하는 수열의 길이를 찾기 위해서 27을 시작점으로, 이상 이하의 수들 중 소수가 나올 때까지 탐색하고 그 길이를 구한다.
2636 치즈
핵심 풀이
구멍이 뚫린 가장자리의 위치를 찾아서 녹여야한다.
알고리즘
(1, 1) 블록부터 치즈를 거치지 않고 상하좌우로 이동하여 방문이 가능한 노드를 가장자리라고 할 수 있다. -> 너비탐색
(1, 1) 부터 탐색하는 이유는 (1, 1)은 항상 치즈가 아니기 때문이다.
치즈가 모두 녹을 때까지 반복한다.
2617 구슬 찾기
핵심 풀이
무게가 중간이 절대로 될 수 없는 경우는 자신보다 무거운 구슬이 (n+1)/2개 이상이거나 자신보다 가벼운 구슬이 (n+1)/2개 이상인 경우
알고리즘
깊이 탐색을 하여 자신보다 가볍거나 무거운 구슬의 개수를 계산한다.