Engineering Note

K번째 약수 본문

Problem Solving/파이썬 알고리즘 문제풀이(코딩테스트 대비)

K번째 약수

Software Engineer Kim 2021. 5. 12. 22:26

it 취업을위한알고리즘문제풀이

문제

코드

import sys
#sys.stdin = open("input.txt","rt")

N,K = map(int,input().split()) #띄어쓰기를 구분으로 읽어 들어와서 N,K에 int형으로 저장

cnt = 0
for i in range(1,N+1):
    if N % i == 0:
        cnt += 1
    if cnt == K:
        print(i)
        break
else:
    print(-1)
import sys
#sys.stdin = open("input.txt","rt")

N,K = map(int,input().split()) #띄어쓰기를 구분으로 읽어 들어와서 N,K에 int형으로 저장

num = []
cnt = 0
for i in range(1,N+1):
    if N % i == 0:
        num.append(i)
        cnt += 1


if cnt<K:
    print(-1)
else:
    print(num[K-1])

문제해결방법

  • i가 1부터 N까지 변할때 N을 i로 나누어서 나누어 떨어지는 경우 카운트 값을 증가시키면서 카운트가 K가 됐을 때 i를 출력하고 for문을 break한다.
  • for문이 break를 만나지 못하고 끝까지 갔을 경우 K번째 약수가 존재하지 않는 경우 이므로 이때문 for else 구문으로 -1을 출력한다.

'Problem Solving > 파이썬 알고리즘 문제풀이(코딩테스트 대비)' 카테고리의 다른 글

정다면체  (0) 2021.05.30
자릿수의 합  (0) 2021.05.30
대표값  (0) 2021.05.29
K번째 큰 수  (0) 2021.05.29
K번째 작은수  (0) 2021.05.12
Comments