Algo-Study-2409 / algo-study-2409

0 stars 5 forks source link

[유수민] 1주차 문제풀이 #2

Closed proysm closed 1 week ago

proysm commented 1 week ago

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개 이상인 경우

알고리즘

깊이 탐색을 하여 자신보다 가볍거나 무거운 구슬의 개수를 계산한다.

mins-n commented 1 week ago

고생하셨습니다!!!

Chaeniiiii commented 1 week ago

고생하셨습니다 :)