https://school.programmers.co.kr/learn/courses/30/lessons/120887
[문제 설명]
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
[나의 풀이]
(초안)
def solution(i, j, k):
answer = 0
for num in range(i, j + 1):
n = str(num)
nk = str(k)
if nk in n:
answer += n.count(nk)
return answer
어차피 count를 했을때 해당 숫자가 들어있지 않다면 0을 더하게 되므로
if문을 안 쓰고 아래와 같이 작성해도 됐을 것 같다.
(최종)
def solution(i, j, k):
answer = 0
for n in range(i, j + 1):
answer += str(n).count(str(k))
return answer
[다른 풀이]
def solution(i, j, k):
answer = sum([ str(i).count(str(k)) for i in range(i,j+1)])
return answer
def solution(i, j, k):
return sum(map(lambda v: str(v).count(str(k)), range(i, j+1)))
'프로그래머스 > 파이썬_입문' 카테고리의 다른 글
이진수 더하기 (0) | 2025.01.14 |
---|---|
A로 B 만들기 + Counter() (0) | 2025.01.13 |
로그인 성공? +dict() (0) | 2025.01.11 |
옹알이 (1) + 정규표현식 (0) | 2025.01.10 |
등수 매기기 (0) | 2025.01.09 |