"Boldness has genius, power, and magic in it." - Johann Wolfgang von Goethe

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