20210113 // 삼성 SW Expert 아카데미 // 1926

2021. 1. 13. 15:27Programming/SW Expert Academy

삼성 SW Expert 아카데미 1926번 "간단한 369게임" 문제입니다.

N = int(input())
for i in range(1, N+1):
    k = str(i)
    if '3' in k or '6' in k or '9' in k:
        print("-"* (k.count('3') + k.count('6') +  k.count('9')), end="")
        print(end=" ")
    else:
        print(k, end=" ")

말 그대로 369게임이다. 369는 숫자에 3, 6, 9가 들어가 있으면 들어가 있는 횟수마다 박수를 치는 게임이다.

 

여기서는 박수대신 - 를 출력하는 것이다. 이를 정수형으로 처리하면 10으로 나눈 나머지를 일일히 따져야되서 귀찮다.

 

이럴 때 편한 것이 파이썬의 리스트인데 숫자를 문자열로 바꾼 다음에 '3', '6', '9'가 문자열 안에 있는지 in을 사용하여 구한다.

 

in을 사용하여 구하고 있으면 리스트의 count 메서드를 사용하여 들어가있는 횟수만큼 - 를 출력한다.