sbs1621
부릉부릉 개발자
sbs1621
만나서 반갑습니당 🤍
Portfolio
Github
email
전체 방문자
오늘
어제
  • 분류 전체보기 (69)
    • Spring Boot (3)
      • Swagger (2)
      • Test Code (1)
    • Spring Security (4)
      • Json Web Token (4)
    • Algorithm (25)
      • Beakjoon (22)
      • Programmers (0)
      • 이것이 코딩테스트다 (3)
    • Kubernetes (0)
      • Docker (0)
    • Util (2)
      • Customizing (2)
    • Computer Sience (8)
      • Operating System (0)
      • Network (8)
    • IoT (2)
      • Arduino (2)
    • Daily Life (16)
      • 꿀팁 (1)
      • 일상 (6)
      • 해외여행 (4)
      • 회고록 (3)
      • 학교 (2)
    • Work (9)
      • ETRI (9)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
sbs1621

부릉부릉 개발자

[Greedy] 1이 될때까지
Algorithm/이것이 코딩테스트다

[Greedy] 1이 될때까지

2022. 6. 15. 18:00

이것이 코딩 테스트다 with Python
기출 : 2018 E 기업 알고리즘 대회
Greedy 알고리즘

문제

  • 어떠한 수 N이 1이 될 때까지의 다음 두 과정을 반복적으로 선택하여 수행한다.
    • N에서 1을 뺀다.
    • N을 K로 나눈다.
  • N이 K로 나누어 떨어질 경우 N을 K로 나누고 그렇지 않을 경우 N에서 1을 뺀다.

입력조건

  • 첫째줄에 N(2 ≤ N ≤ 100,000) 과 K(2 ≤ K ≤ 100,000)가 공백으로 구분되며 각각 자연수로 주어진다. 이때 입력으로 주어지는 N은 K보다 항상 크거나 같다.

출력조건

  • 첫째줄에 N이 1이 될때까지 1번 혹은 2번의 과정을 수행해야하는 횟수의 최솟값을 출력한다.

Solution

n, k = map(int, input().split())

count = 0

while True:
    if n == 1:
        break
    count += 1
    if n % k == 0:
        n = n / k
    else :
        n = n -1

print(count)

N과 K를 입력받고 N이 K로 나누어 떨어지면 N/K 그렇지않으면 N-1

  • n, k = map(int, input().split()) : N과 K를 입력받음
  • if n == 1: : N이 1이 됐으니 break
  • count += 1 : N이 1이 아닌경우 연산 횟수를 count
  • if n % k == 0: : N이 K로 나누어 떨어지는경우 N/K
  • else : : 그렇지 않은경우 N-1
    'Algorithm/이것이 코딩테스트다' 카테고리의 다른 글
    • [Greedy] 숫자 카드게임
    • [Greedy] 큰수의 법칙

    티스토리툴바