[프로그래머스 Python] 코딩테스트 입문 Day 24 - 수학, 시뮬레이션, 문자열, 조건문, 반복문
1. 치킨 쿠폰
프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다. 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다. 시켜먹은 치킨의 수 chicken
이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요.
제한사항
chicken
은 정수입니다.- 0 ≤
chicken
≤ 1,000,000
코드 작성
def solution(chicken):
# 서비스로 먹을 수 있는 치킨의 수
coupon = chicken
service = 0
# 쿠폰수가 10장 미만이 될 때까지 반복문 실행
while coupon >= 10:
service += coupon // 10
coupon = coupon % 10 + coupon // 10
return service
2. 이진수 더하기
이진수를 의미하는 두 개의 문자열 bin1
과 bin2
가 매개변수로 주어질 때, 두 이진수의 합을 return하도록 solution 함수를 완성해주세요.
제한사항
- return 값은 이진수를 의미하는 문자열입니다.
- 1 ≤
bin1
,bin2
의 길이 ≤ 10 bin1
과bin2
는 0과 1로만 이루어져 있습니다.bin1
과bin2
는 “0”을 제외하고 0으로 시작하지 않습니다.
코드 작성
def solution(bin1, bin2):
return bin(int(bin1, 2) + int(bin2, 2))[2:]
3. A로 B 만들기
문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 0 < before의 길이 == after의 길이 < 1,000
- before와 after는 모두 소문자로 이루어져 있습니다.
코드 작성
def solution(before, after):
bf_dict = {}
af_dict = {}
for n in before:
if n not in bf_dict.keys():
bf_dict[n] = 1
else:
bf_dict[n] += 1
for m in after:
if m not in af_dict.keys():
af_dict[m] = 1
else:
af_dict[m] += 1
if sorted(bf_dict.keys()) == sorted(af_dict.keys()):
for k, v in bf_dict.items():
if bf_dict[k] != af_dict[k]:
return 0
return 1
else:
return 0
4. k의 개수
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 = [str(n) for n in range(i, j+1)]
return ''.join(answer).count(str(k))
👩🏻💻개인 공부 기록용 블로그입니다
오류나 틀린 부분이 있을 경우 댓글 혹은 메일로 따끔하게 지적해주시면 감사하겠습니다.
댓글남기기