728x90
6082 - 3 6 9 게임의 왕이 되자
(풀이 1) 입력이 30보다 작은 정수로 제한된 경우
n = int(input())
for i in range(1, n+1):
#일의 자리가 3, 6, 9 이면
if((i%10) == 3 or (i%10) == 6 or (i%10) == 9):
print("X", end=" ")
else:
print(i, end=" ")
일의 자리만 검사한 이유는?
해당 문제는 입력이 30보다 작은 정수 1개가 입력된다고 가정했기 때문에
십의 자리가 3, 6, 9인지는 따로 검사할 필요가 없다!
(풀이 2) 입력이 제한되지 않은 경우
n = int(input())
for i in range(n+1):
num = str(i) #문자열로 변환
length = len(num) #자리수 계산
for j in range(length):
if(int(num[j]) != 0 and int(num[j]) % 3 == 0 ):
print("X", end="")
else:
print(num[j], end="")
print(" ")
- len(문자열): 문자열의 길이를 반환
1) 숫자의 자리수를 계산한다(문자열 길이로 구하면 쉽게 구할 수 있음)
2) 자리수만큼 반복하여 해당 수의 숫자가 3, 6, 9인지 판별한다
- 문자열로 변환해 놓았기 때문에 if문 안에서 % 연산자 사용하기 위해서는 int형으로 변환이 필요함
728x90
'[Python]알고리즘 > 코드업' 카테고리의 다른 글
[기초-종합] 6084 - 소리 파일 저장용량 계산하기 (0) | 2022.03.17 |
---|---|
[기초-종합] 6083 - 빛 섞어 색 만들기 (0) | 2022.03.17 |
[기초-종합] ★ 6081 - 16진수 구구단 출력하기 (0) | 2022.03.16 |
[기초-종합] 6080 - 주사위 2개 던지기 (0) | 2022.03.16 |
[기초-종합] ▲ 6079 - 언제까지 더해야 할까? (0) | 2022.03.16 |