본문 바로가기
코딩테스트

프로그래머스 입문 Day 24 파이썬

by 피갓자 2025. 5. 20.

프로그래머스
프로그래머스

치킨 쿠폰

문제 설명

프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다.

쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다.

시켜먹은 치킨의 수 chicken이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요.

제한사항

  • chicken은 정수입니다.
  • 0 ≤ chicken ≤ 1,000,000

입출력 예

chicken result
100 11
1,081 120

입출력 예 설명

입출력 예 #1

  • 100마리를 주문하면 쿠폰이 100장 발급되므로 서비스 치킨 10마리를 주문할 수 있습니다.
  • 10마리를 주문하면 쿠폰이 10장 발급되므로 서비스 치킨 1마리를 주문할 수 있습니다.
  • 따라서 10 + 1 = 11 을 return합니다.

입출력 예 #2

  • 1081마리를 주문하면 쿠폰이 1081장 발급되므로 서비스 치킨 108마리를 주문할 수 있습니다. 그리고 쿠폰이 1장 남습니다.
  • 108마리를 주문하면 쿠폰이 108장 발급되므로 서비스 치킨 10마리를 주문할 수 있습니다. 그리고 쿠폰이 8장 남습니다.
  • 10마리를 주문하면 쿠폰이 10장 발급되므로 서비스 치킨 1마리를 주문할 수 있습니다.
  • 1마리를 주문하면 쿠폰이 1장 발급됩니다.
  • 가지고 있는 쿠폰이 총 10장이므로 서비스 치킨 1마리를 추가로 주문할 수 있습니다.
  • 따라서 108 + 10 + 1 + 1 = 120 을 return합니다.

solution.py

def solution(chicken):
    answer = 0
    
    while chicken >= 10:
        temp = chicken // 10
        answer += temp
        chicken = temp + (chicken % 10)
        
    return answer

이진수 더하기

문제 설명

이진수를 의미하는 두 개의 문자열 bin1과 bin2가 매개변수로 주어질 때, 두 이진수의 합을 return하도록 solution 함수를 완성해주세요.

제한사항

  • return 값은 이진수를 의미하는 문자열입니다.
  • 1 ≤ bin1bin2의 길이 ≤ 10
  • bin1과 bin2는 0과 1로만 이루어져 있습니다.
  • bin1과 bin2는 "0"을 제외하고 0으로 시작하지 않습니다.

입출력 예

bin1 bin2 result
"10" "11" "101"
"1001" "1111" "11000"

입출력 예 설명

입출력 예 #1

  • 10 + 11 = 101 이므로 "101" 을 return합니다.

입출력 예 #2

  • 1001 + 1111 = 11000 이므로 "11000"을 return합니다.

solution.py

def solution(bin1, bin2):
    answer = int(bin1, 2) + int(bin2, 2)
    return bin(answer)[2:]

A로 B 만들기

문제 설명

문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요.

제한사항

  • 0 < before의 길이 == after의 길이 < 1,000
  • before와 after는 모두 소문자로 이루어져 있습니다.

입출력 예

before after result
"olleh" "hello" 1
"allpe" "apple" 0

입출력 예 설명

입출력 예 #1

  • "olleh"의 순서를 바꾸면 "hello"를 만들 수 있습니다.

입출력 예 #2

  • "allpe"의 순서를 바꿔도 "apple"을 만들 수 없습니다.

solution.py

def solution(before, after):
    if sorted(before) == sorted(after):
        return 1
    else:
        return 0

k의 개수

문제 설명

1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다.

정수 ijk가 매개변수로 주어질 때, 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 합니다.

solution.py

def solution(i, j, k):
    answer = 0

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