SWEA
[SWEA] 1926. 간단한 369 게임
Toproot
2022. 1. 2. 15:22
728x90
728x90
간단하다고 하지만 생각보다 간단하지 않은 369게임
주어진 숫자를 가지고 map, split, list 함수들을 사용해서 range로 늘어뜨리고,
그 중에서 3, 6, 9가 들어가면 '-' 를 출력하는 문제.
python의 문자열, 숫자, 리스트를 잘 다룬다면 쉽게 풀 수 있는 문제인 것 같다.
과거의 나는 숫자로 100의 자리 10의 자리 1의 자리를 구분해서 3, 6, 9를 체크한 후,
해당하는 만큼 '-' 를 출력해서 풀었던 것 같다.
하지만 이번에는 문자열을 list로 split 하여 체크한 후에 포함하는 만큼 개수를 카운팅해서 '-'를 출력 해 보았다.
📌 학습한 내용
1. 문자열에 list함수를 사용하면 단어 단위로 쪼개어 져서 리스트를 형성한다.
2. elif 함수를 사용하면 조건에 맞게 필터링 할 수 있다.
3. 오랜만에 문자열을 쪼개고 리스트로 만들고 하는 과정이 어색했는데,
역시 알고리즘 문제는 매일 1문제씩이라도 풀면서 감을 잃지 않아야 하는 것 같다.
numList = list(map(str, range(1, int(input())+1)))
strList = []
for i in numList:
subList = list(i)
cnt = 0
for j in subList:
if j == '3':
cnt += 1
elif j == '6':
cnt += 1
elif j == '9':
cnt += 1
if cnt == 0:
print(i, end='')
else:
for k in range(cnt):
print('-', end='')
print(' ', end='')
728x90
728x90