728x90
반응형
숫자를 입력받아 1부터 N까지 출력하며 3,6,9가 들어가면 박수를 출력하는 문제이다.
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
테스트 케이스
[TC1]
입력 : 10
출력 : 1 2 - 4 5 - 7 8 - 10
해결 과정
숫자마다 문자열로 바꾸고, 리스트에 하나씩 떼어 넣어 각 자리수에 3/6/9가 들어가 있을 때와 아닐 때로 나누어 해결하였다.
코드
N = int(input())
for i in range(1, N + 1):
str_num = list(str(i))
if '3' in str_num or '6' in str_num or '9' in str_num:
temp = ''
for j in range(len(str_num)):
if str_num[j] == '3' or str_num[j] == '6' or str_num[j] == '9':
temp += '-'
print(temp, end=' ')
else:
print("".join(str_num), end=' ')
주석 처리
N = int(input()) # N 입력 받음
for i in range(1, N + 1): # N 동안
str_num = list(str(i)) # 각 수를 문자영로
if '3' in str_num or '6' in str_num or '9' in str_num: # 그 문자열에 3,6,9 중 하나라도 들어가 있으면
temp = '' # 출력 값을 저장할 곳
for j in range(len(str_num)): # 문자열의 길이 동안
if str_num[j] == '3' or str_num[j] == '6' or str_num[j] == '9': # 3 or 6 or 9이면
temp += '-' # 박수
print(temp, end=' ') # 줄 바꿈 변경
else:
print("".join(str_num), end=' ') # 3,6,9가 포함되지 않았을 시, 그냥 출력
728x90
반응형