최대 1 분 소요

사용 언어: Python3

문제

약수 구하기

스크린샷 2023-06-12 오후 2 37 26

풀이

내 풀이

N, K = map(int, input().split())
cnt = 0 # 약수의 개수 카운트
for i in range(1, N + 1):
    if N % i == 0:
        cnt += 1
        if cnt == K:
            print(i)
            break
else: # for ~ else
    print(0)
  • 테스트 케이스: 통과
  • 제출 결과
    스크린샷 2023-06-12 오후 2 39 01

다른 풀이

N, K = map(int, input().split())
print(([i for i in range(1, N + 1) if N % i == 0] + [0] * 10000)[K-1])

  • 굉장히 파이써닉(pythonic)한 코드같다.
  • 약수만 추출한 리스트에 [0]*10000 을 이어 붙인다
    • 🌟 N의 범위가 10000 이하니까 약수의 개수가 K보다 작았을 때 0이 출력될 수 있도록 !!
  • 완성된 리스트의 K-1번째 원소를 출력한다.


💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기