Algorithm/백준

[백준 알고리즘] 27961번: 고양이는 많을수록 좋다 (Python)

에릭 Kim 2023. 7. 4. 16:48
반응형

https://www.acmicpc.net/problem/27961

 

27961번: 고양이는 많을수록 좋다

올바른 행동 순서가 될 수 있는 하나의 예시는 아래와 같으며, $4$번보다 더 작은 행동 횟수로 $6$마리의 고양이를 마도카의 집에 들이는 것은 불가능하다. 초기 상태($0$마리) $\rightarrow$ 생성

www.acmicpc.net

 

소스코드

 

 

풀이

★ 시작할 때 고양이 0마리부터 시작하기 때문에 고양이를 1마리로 증가시킬 때만 생성마법을 사용하고, 그 이후에는 복제 마법을 사용하는 것이 효율이 좋습니다 ! 

 

★ 고양이의 수가 n과 같아질 때까지 반복문을 수행하는데, 만약 n - t가 현재 고양이 수보다 크면 자기 자신만 복제하고, 반대의 경우에는 n-t만큼 복제해야 합니다.

 

ex) n = 7

첫 반복문

t = 1 

n - t = 6

=> t = 2, cnt = 1 

 

두번째 반복문

t = 2

n - t = 5

=> t = 4, cnt = 2

 

세번째 반복문

t = 4

n - t = 3

=> t = 7, cnt = 3

 

★ 출력할 때 cnt에 +1을 해주는 이유는 고양이의 수를 0마리에서 1마리로 만들 때 생성마법을 한번 사용했기 때문입니다. 

 

 

반응형