본문 바로가기
코테정복💫/파이썬 PYTHON

[프로그래머스/Python] k의 개수

by 옹쑥이 2023. 9. 18.

문제 설명

1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요.

제한사항

  • 1 ≤ i < j ≤ 100,000
  • 0 ≤ k ≤ 9

입출력 예

i j k result
1 13 1 6
10 50 5 5
3 10 2 0

입출력 예 설명 

  • 입출력 예 #1
    본문과 동일합니다.
  • 입출력 예 #2
    10부터 50까지 5는 15, 25, 35, 45, 50 총 5번 등장합니다. 따라서 5를 return 합니다.
  • 입출력 예 #3
    3부터 10까지 2는 한 번도 등장하지 않으므로 0을 return 합니다

풀이

[참고 풀이]

def solution(i, j, k):
    answer = 0
    for n in range(i, j+1):
        answer += str(n).count(str(k))
    return answer

문자열 메소드인 count는 문자이어야하므로 str 사용


[기존 풀이]

def solution(i, j, k):
    answer = 0
    k = str(k)
    
    arr = list(map(str, range(i, j+1)))
    arr_new = "".join(arr)
    answer = arr_new.count(k)
    
    return answer

[오류 풀이]

def solution(i, j, k):
    answer = 0
    ex = []
    
    for x in range(i, j+1):
        if(str(k) in str(x)):
            ex.append(x)
    return answer

해당 방법으로 실행 시, 11과 같은 숫자는 1이 한 번으로 인식이 됨.

 

 

문제 출처

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

 

프로그래머스

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

programmers.co.kr