swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PTeo6AHUDFAUq&categoryId=AV5PTeo6AHUDFAUq&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


  • N 이 10 이상 1000 이하이고, 1000 은 그냥 출력하면 되기 때문에 고려 대상이 아님
  • 최대 나올 수 있는 수가 3자릿수이기 때문에, 간단하게 각각의 자릿수를 확인하면서 박수 횟수를 계산해준다.

n = int(input())
clap = [3, 6, 9]

for p in range(1, n+1) :
    cnt = 0
    for i in range(3) :                     # 최대 1000 까지니 세자릿수만 다 검사
        digit = p % (10**(i+1)) // (10**i)  # 백의 자리, 십의 자리, 일의 자릿수
        if digit in clap :                  # 해당 자릿수가 3, 6, 9 이면 박수 + 1
            cnt += 1
    if cnt == 0 :                           # 3 6 9 가 하나도 없으면 값 출력
        print(p, end = ' ')
    else :                                  # 그 외엔 박수 횟수만큼 출력
        print('-' * cnt, end = ' ')

+ Recent posts