369게임

2024. 9. 6. 18:00코딩테스트 입문

https://school.programmers.co.kr/learn/courses/30/lessons/120891

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 설명
머쓱이는 친구들과 369게임을 하고 있습니다. 369게임은 1부터 숫자를 하나씩 대며 3, 6, 9가 들어가는 숫자는 숫자 대신 3, 6, 9의 개수만큼 박수를 치는 게임입니다. 머쓱이가 말해야하는 숫자 order가 매개변수로 주어질 때, 머쓱이가 쳐야할 박수 횟수를 return 하도록 solution 함수를 완성해보세요.


제한사항

  • 1 ≤ order ≤ 1,000,000

입출력 예

order result
3 1
29423 2

입출력 예 설명
입출력 예 #1

  • 3은 3이 1개 있으므로 1을 출력합니다.

입출력 예 #2

  • 29423은 3이 1개, 9가 1개 있으므로 2를 출력합니다.

숫자 order가 주어졌을 때, 해당 숫자 내에 3, 6, 9가 몇 개인지 세는 문제입니다.

 

이전에 풀었던 'k의 개수' 문제랑 풀이 방법이 동일합니다. 숫자를 문자로 변환한 다음, count를 통해서 3, 6, 9가 몇 개인지 세면 됩니다.

파이썬으로 문제를 풀어보겠습니다.

def solution(order):
    # 숫자들을 문자로 하나씩 저장합니다.
    nums = list(str(order))
    # 3, 6, 9의 개수를 셉니다.
    cnt3 = sum([nums.count("3")])
    cnt6 = sum([nums.count("6")])
    cnt9 = sum([nums.count("9")])
    # 개수를 더해줍니다.
    answer = cnt3 + cnt6 + cnt9
    return answer

 

3, 6, 9가 문자열 내에 있는지 검사하는 방법으로도 풀 수 있습니다.

def solution(order):
    return sum([str(order).count(n) for n in '369'])

 

람다 함수를 사용해서도 풀 수 있는 문제니만큼 다양한 방법으로 도전해보시는 걸 추천드립니다.

'코딩테스트 입문' 카테고리의 다른 글

대문자와 소문자  (1) 2024.09.08
암호 해독  (1) 2024.09.07
가까운 수  (0) 2024.09.05
삼각형의 완성조건 (1)  (0) 2024.09.04
중복된 문자 제거  (0) 2024.09.03