문제 : 수 N이 1이 될때까지 나누려고한다. 1이되는 최소횟수를 구하려라.
조건 1. N에서 1을 뺀다.
조건 2. N을 K로 나눈다.
ex) N이 15면 K가 4면 1) N-1 2) N-1 3) N-1 4) N/K 5)N-1 6) N-1 6번이 최소횟수.
풀이방법 :
1. 수 N을 받는다. 수 K를 받는다.
2. while문으로 N이 1일때 종료되며
3. if문으로 N이 K로 나누어지지 않을때는 1을 빼며 나누어질때에는 나누기를 반복한다.
Scanner input = new Scanner(System.in);
int N = input.nextInt();
int K = input.nextInt();
int result = 0; //최종횟수
while(true){
if (N==1){
break;
}
if (N%K==0){
N = N/K;
}
else {
N = N-1;
}
result += 1;
}
System.out.println(result);
'알고리즘' 카테고리의 다른 글
자바 알고리즘 구현 - 시각 (0) | 2023.05.02 |
---|---|
알고리즘 구현 - 상하좌우 (0) | 2023.05.02 |
알고리즘 그리디 - 숫자 카드게임(java) (1) | 2022.10.04 |
알고리즘 그리디 - 큰 수의 법칙(java) (2) | 2022.10.04 |
알고리즘 그리디 - 거스름돈(java) (0) | 2022.09.28 |