반응형
안녕하세요.
이번 포스팅은 SWEA의 1926번 문제 풀이입니다.
문제 이름은 "간단한 369게임" 입니다.
풀이
1
2
3
4
5
6
7
8
9
10
11
|
N = int(input())
for i in range(1, N+1):
l = str(i)
cout = 0
for j in l:
if j == '3' or j == '6' or j == '9':
cout += 1
if cout > 0:
print('-'*cout, end=' ')
else:
print(i, end=' ')
|
cs |
핵심: 문자열로 변환하여 3, 6, 9 가 있으면 카운트를 해줍니다.
36일 때는 문자열로 탐색하면 카운트가 2이므로 -를 2번 출력합니다.
1. 숫자 N을 입력 받습니다.
2. for 문을 통해 1부터 N까지 순서대로 탐색합니다.
3. i를 문자열로 변환합니다.
4. 3, 6, 9가 포함 여부를 저장할 변수를 선언합니다.
5. 문자열을 탐색합니다.
36일 경우 -> 3, 6
360일 경우 -> 3, 6, 0
6~7. 조건문을 통해 3, 6, 9가 포함되어 있으면 카운트를 해줍니다.
8~9. 탐색한 문자열이 카운가 되어 있을 경우 카운트만큼 -를 곱해서 출력합니다.
35 -> -
36 -> --
10~11. 카운트가 없을 경우 숫자를 출력합니다.
댓글