1로 만들기 3

백준(JAVA) 1463번 1로 만들기 풀이

Java으로 구현한 1463번 1로 만들기 문제 풀이입니다. https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n =..

백준(Python) 1463번 1로 만들기 풀이

Python으로 구현한 1463번 1로 만들기 문제 풀이입니다. https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net n = int(input()) dp = [0] * (n + 1) for i in range(2, n + 1) : dp[i] = dp[i - 1] + 1 if i % 3 == 0 : dp[i] = min(dp[i], dp[i // 3] + 1) if i % 2 == 0 : dp[i] = min(dp[i], dp[i // 2] + 1) print(dp[n]) 1. n이 3으로 나누어 떨어지면, 3으로 나눈다. 2. n이 2로 나누어 떨어지면, 2로 나..

[다이나믹 프로그래밍] 이코테 (파이썬) 1로 만들기 풀이

[문제] 정수 X가 주어졌을 때, 정수 X에 사용할 수 있는 연산은 다음과 같이 4가지입니다. 1. X가 5로 나누어 떨어지면, 5로 나눕니다. 2. X가 3으로 나누어 떨어지면, 3으로 나눕니다. 3. X가 2로 나누어 떨어지면, 2로 나눕니다. 4. X에서 1을 뺍니다. 정수 X가 주어졌을 때, 연산 4개를 적절히 사용해서 값을 1로 만들고자 합니다. 연산을 사용하는 횟수의 최솟값을 출력하세요. 예를 들어 정수가 26이면 다음과 같이 계산해서 3번의 연산이 최솟값입니다. 26 -> 25 -> 5 -> 1 [입력 조건] 1. 첫째 줄에 정수 X가 주어집니다. (1