알고리즘 공부💥/SWExpertAcademy

[SWEA] D2 1926. 간단한 369게임 / python

hyunsix 2021. 4. 20. 14:18

출처 : swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PTeo6AHUDFAUq&categoryId=AV5PTeo6AHUDFAUq&categoryType=CODE&problemTitle=1926&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

3 6 9 게임을 프로그램으로 제작중이다. 게임 규칙은 다음과 같다.

 

1. 숫자 1부터 순서대로 차례대로 말하되, “3” “6” “9” 가 들어가 있는 수는 말하지 않는다.

  1 2 3 4 5 6 7 8 9

2. "3" "6" "9"가 들어가 있는 수를 말하지 않는대신, 박수를 친다. 이 때, 박수는 해당 숫자가 들어간 개수만큼 쳐야 한다.  
예를 들어 숫자 35의 경우 박수 한 번, 숫자 36의 경우 박수를 두번 쳐야 한다.
 

입력으로 정수 N 이 주어졌을 때, 1~N 까지의 숫자를

게임 규칙에 맞게 출력하는 프로그램을 작성하라.

박수를 치는 부분은 숫자 대신, 박수 횟수에 맞게 “-“ 를 출력한다.

여기서 주의해야 할 것은 박수 한 번 칠 때는 - 이며, 박수를 두 번 칠 때는 - - 가 아닌 -- 이다. 
 

[제약사항]

N은 10이상 1,000이하의 정수이다. (10 ≤ N ≤ 1,000)

 

[입력]

입력으로 정수 N 이 주어진다.


[출력]

1 ~ N까지의 숫자를 게임 규칙에 맞게 출력한다.

 

입력10

 

출력1 2 - 4 5 - 7 8 - 10

 


Think Process 🤞

 

  1. 컴퓨터가 369를 하려면 어떤 방식이 필요할까
  2. 숫자를 자리마다 하나씩 쪼개서 보개 만들면 가능할까
  3. 쪼개서 그 쪼갠 자릿수가 3,6,9안에 있다면 결과str에 추가하는 방식으로 해보자
  4. 문제가 생겼다 ex) 359같은 경우 -5- 이런식으로 추가된다.
  5. 다른 방법을 찾아야 한다 자릿수가 3,6,9에 속한 횟수만큼 하이푼을 추가할 수 없을까
  6. 이중포문을 이용해보자
  7. 첫 번째 for문에선 인덱싱 할 숫자가 나오게하고
  8. 두 번째 for문에선 그 숫자의 길이만큼 for문을 돌리며 시도해보자
  9. GREAT! GO!

 

코딩 풀이 👀