컴공생의 다이어리

1이 될 때까지 본문

Development/Algorithm & Coding Test

1이 될 때까지

컴공 K 2020. 12. 17. 17:19

어떠한 수 N이 1이 될 때까지 다음의 두 과정 중 하나를 반복적으로 선택하여 수행하려고 한다. 단, 두번째 연산은 N이 K로 나누어 떨어질 때만 선택할 수 있다.

  1. N에서 1을 뺀다.
  2. N을 K로 나눈다.

 

질문

N과 K가 주어질 때, N이 1이 될 때까지 1번 혹은 2번의 과정을 수행해야 하는 최소 횟수를 구하는 프로그램을 작성하시오.

 

 

코드로 구현

아래는 파이썬으로 구현한 코드이다.

N,K=map(int,input().split())

result=0

while True:
          if N%K==0:
                    N/=K
          else:
                    N-=1
          result+=1
          if N==1:
                    break
print(result)

 

아래는 C/C++으로 구현한 코드이다.

#include<iostream>

int main() {
	int N, K;
	int result = 0;
	std::cin >> N >> K ;

	while (true) {
		if (N % K == 0) {
			N /= K;
		}
		else {
			N -= 1;
		}
		result++;
		if (N == 1) break;
	}

	std::cout << result;
	return 0;
}

 

 

www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9791162243077

 

이것이 취업을 위한 코딩 테스트다 with 파이썬 - 교보문고

IT 취준생이라면 누구나 가고 싶어 하는 카카오, 라인, 삼성전자의 2016년부터 2020년까지의 코딩 테스트와 알고리즘 대회의 기출문제를 엄선하여 수록하였다. 최근 5년간의 코딩 테스트 기출문제

www.kyobobook.co.kr

 

728x90
반응형

'Development > Algorithm & Coding Test' 카테고리의 다른 글

곱하기 혹은 더하기  (0) 2020.12.18
모험가 길드  (0) 2020.12.18
숫자 카드 게임  (0) 2020.12.17
큰 수의 법칙  (0) 2020.12.17
거스름돈  (0) 2020.12.17
Comments