2019. 8. 26. 01:26
728x90

문제 번호: 1463

문제 제목: 1로 만들기

문제 주소: https://www.acmicpc.net/problem/1463


문제 내용

아래 세 가지 규칙을 바탁으로 X를 1로 만드는데 필요한 최소한의 연산 횟수를 출력한다.
1. X가 3으로 나누어 떨어지면, 3으로 나눈다.
2. X가 2로 나누어 떨어지면, 2로 나눈다.
3. 1을 뺀다.


테스트 케이스

2

1

10

3

10000

14


문제 풀이

일정 범위까지 점화식을 만들고 점화식을 바탕으로 아래의 내용에 대해 판단한다.
1. m1, m2, m3 변수를 만들고 100만보다 큰 수로 초기화 한다.
2. n % 3 == 0인 경우 [n / 3]의 값을 구해 m1에 저장한다.
3. n % 2 == 0인 경우 [n / 2]의 값을 구해 m2에 저장한다.
4. [n - 1]의 값을 구해 m3에 저장한다.
5. m1, m2, m3의 값을 비교해 가장 작은 값 + 1을 [n]에 저장한다.
6. 1~5를 반복한다.


풀이 코드


728x90

'공부 > 문제풀기' 카테고리의 다른 글

백준 2156 - 포도주 시식  (0) 2019.08.26
백준 10844 - 쉬운 계단 수  (0) 2019.08.26
백준 2579 - 계단 오르기  (0) 2019.08.23
백준 1932 - 정수 삼각형  (0) 2019.08.23
백준 1149 - RGB거리  (0) 2019.08.23
Posted by 아야카