개발 이야기/알고리즘 및 코테 준비
python 369를 하자
혁진
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=" ")