본문 바로가기
개발/Coding Test - Python

[Python] 이것이 코딩테스트다 with 파이썬 - 그리디 - 거스름돈

by seopport 2023. 1. 16.
728x90
반응형

* 해당 문제 및 해설은 "이것이 코딩 테스트 다 with 파이썬" 책을 기준으로 요약 및 정리 하여 작성하였습니다.  

 

http://www.yes24.com/product/goods/91433923

 

이것이 취업을 위한 코딩 테스트다 with 파이썬 - YES24

나동빈 저자의 유튜브 라이브 방송 https://www.youtube.com/c/dongbinnaIT 취준생이라면 누구나 입사하고 싶은 카카오 · 삼성전자 · 네이버 · 라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생

www.yes24.com


그리디 알고리즘이란 '현재 상황에서 지금 당장 좋은 것만 고르는 방법' 을 의미한다. 
그리디 알고리즘을 이용하면 매 순간 가장 좋아 보이는 것을 선택하며, 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다.

 

문제 설명 : 그리디 - 거스름돈

당신은 음식점의 계산을 도와주는 점원이다. 카운터에서 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다고 가정한다. 손님에게 거슬러줘야 할 돈이 N원일 때, 거슬러 줘야 할 동전의 최소 개수를 구하라.

코드 풀이 및 수행 코드

1. 무엇을 찾아야 하는 가? 최소 개수

    = '가장 큰 화폐 단위부터' 돈을 거슬러 주는 것'

n = 1260
count = 0

# 큰 단위의 화폐부터 차례대로 확인
list = [500, 100, 50, 10]

for coin in list : 
	count += n // coin # 해당 화폐로 거슬러 줄 수 있는 동전의 개수 세기
    n %= coin
 
 
 print(count)

개인적인 생각

세미콜론(;) 을 사용할 필요 없고 타입을 지정해주지 않아도 빠르게 작성할 수 있는 파이썬은 코딩 테스트에 적합한 언어라고 생각이 됩니다. 코딩테스트를 볼 언어를 선정할 때, 가장 중요한 것이 범용성 이라고 생각되는데, 유명한 언어인 파이썬을 사용해보려 합니다.
(과거에는 데이터 분석 스크립트를 이용하여 개발을 할 때 잠깐 사용한 경험이 있습니다.)
궁극적으로 언어에 제한받지 않는 개발자, 최적의 언어를 이용하여 개발을 하는 개발자가 되고 싶습니다. :)

 

오늘의 개발자 명언

 

컴퓨터랑 일하는 건 엄청 멋있다.
누구랑 싸우지도 않고, 모든 것을 대신 기억해주고, 내 맥주를 뺏어 마시지도 않는다. (Paul Leary)
728x90
반응형