혁진 2023. 1. 6. 16:10

문제: 특정 숫자 n을 입력했을 때 그 수까지 공백을 두고 수를 출력한다. 

이때 3, 6, 9 중 하나라도 포함되어 있으면,  그 수 대신 영문 대문자 X를 출력한다.

33과 같이 3,6,9가 두 번 들어간 수 일때, "X"과 같이 X를 출력하는 형태도 있다. 

 

풀이:

이 문제는 생각보다 간단(?)하게 해결할 수 있다.수를 문자열로 바꾸고, slicing한 후 for문을 돌면서 3,6,9가 몇개가 있는지 count하면 된다. 이 때 3, 6, 9를 ==로 확인 가능하지만 %3==0으로 확인할 수도 있다. 다만 후자의 경우 0도 포함되기에 0인 case는 제외해줘야한다. 코드는 아래와 같다, 

n = int(input())
for i in range(1,n+1):
    s = str(i)
    count = 0
    for x in s:
        x = int(x)
        if(x!=0 and x%3==0):
            count += 1
    if count == 0:
        print(i, end=" ")
    else:
        print(count*"X", end=" ")