https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5PTeo6AHUDFAUq&categoryId=AV5PTeo6AHUDFAUq&categoryType=CODE&problemTitle=&orderBy=PASS_RATE&selectCodeLang=ALL&select-1=2&pageSize=10&pageIndex=2

 

SW Expert Academy

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

swexpertacademy.com

 

 

 

# 문제 정리

369 게임을 프로그램 제작. 게임 규칙은 다음과 같다.

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

 

2. '3', '6', '9'가 들어가 있는 수를 말하지 않는 대신, 박수를 친다. 이 때 박수는 해당 숫자가 들어간 개수만큼 쳐야 한다.

예를 들어 숫자 35의 경우 박수 한번, 숫자 36의 경우 박수를 두번 처야 한다.

 

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

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

 

 

 


# 문제 해결을 위한 개념

< count >

문자열 내부에 특정 문자가 등장하는 횟수를 알려준다.

대소문자를 구분하고, 해당 문자열이 없을 경우 0을 반환한다.

예를들어 1,3 이라면 count = 1, 136 일 때, count = 2 이다.

예를들어 str.count('i') 는 str 문자열에 'i' 라는 문자가 등장하는 횟수를 세어준다.

 

1.  문자열.count(a)

문자열 전 범위에서 a가 등장하는 횟수를 반환하는 매서드

 

2. 문자열.count(a, start)

문자열 start index 부분에서부터 시작해서 문자열 끝까지 a가 등장하는 횟수를 반환하는 매서드

 

3. 문자열.count(a, start, end)

문자열 start index 부분에서 end index 부분까지의 부분 문자열에서 a가 등장하는 횟수를 반환하는 매서

 

 

 

 

 

# 정답 코드

N = int(input())
for i in range(1,N+1):
    clap = str(i).count('3') + str(i).count('6') + str(i).count('9')
    if not clap:
        print(i,end=' ')
    else:
        print('-'*clap,end=' ')

 

+ Recent posts