[SWEA] 1926. 간단한 369게임
1926. 간단한 369게임
문제 설명
3 6 9 게임을 제작하려고 합니다. 3 6 9에 박수 대신 ‘-‘를 출력합니니다.
30같은 경우에는 -을 출력합니다. 포함되는 개수에 맞춰 ‘-‘를 출력합니다.
입력 | 출력 |
---|---|
10 | 1 2 - 4 5 - 7 8 - 10 |
생각해보기
처음에 생각했던게 if 조건문을 사용해서 “3”, “6, “9”가 포함되면’ - ‘ 로 변환하는 것을 생각했습니다. 그래서 풀었던것이 아래의 식 입니다.
N = int(input()) #자연수 N을 받습니다.
new = "" #빈 문자열을 생성 해줍니다.
for i in range(1, N+1): #범위를 1부터 지정된 숫자까지 출력하는 반복문
new += str(i) + " " #빈 문자열에 숫자를 한 칸 띄고 넣어줍니다.
# new = "1 2 3 4 5 6 7 8 9 10"가 생성됩니다.
new = new.replace("3", '-').replace("6", '-').replace("9", '-')
# 대체되면 3,6,9가 들어가면 -로 대체됩니다.
print(new)
그런데 이렇게 작성하면 30이나 13같은 경우에 ‘-‘가 아니라 ‘-0’과 ‘1-‘로 출력 됩니다. 그렇기 때문에 다른 방법을 생각해야 합니다.
풀이(주석 추가)
N = int(input()) #자연수 N을 추가
for i in range(1, N+1):
i = str(i) #정수 i를 문자열로 바꿔줍니다.
clap = i.count('3') + i.count('6') + i.count('9') #count를 통해서 해당 문자열에 '3'이나 '6' 그리고 '9'가 몇개인지 세고 더합니다.
if clap == 0: #안에 3,6,9가 포함되지 않으면 그냥 출력합니다.
print(i, end=' ')
else: # 포함되어있으면 '-'를 clap의 수 만큼 -를 출력해줍니다.
print("-" * clap, end=' ')
📌 count() 함수
문자열 안에서 찾고 싶은 문자의 개수를 찾을 수 있습니다. count함수는 튜플, 리스트, 집합과 같은 반복 가능한 iterable 자료형에서도 사용 가능합니다.
사용방법은 ‘변수.count(찾는 요소)’입니다.
댓글남기기