• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

다른풀이법 / 무엇이 더 효율적인지 ?

23.02.11 22:13 작성 조회수 412

0

A0267806-01BF-4A38-9707-B828F819E255.jpeg

저의 풀이입니다

 

제가 채점 프로그램을 사용할 수 없는 환경이라서

다른 테스트를 못해보았습니다

 

sum에 하나씩 더해 갈때 cnt 를 증가시키고

만약 더한 뒤에 money 보다 크다면

증가했던 cnt 를 다시 back 시키기 위해 -1 했습니다

sum == money 경우

전역변수 flag 를 True 하여

나머지 재귀함수들을 바로 종료시키도록 하였습니다

 

질문1) 괜찮은 풀이인가요?

 

 

그리고

6B7086EA-A4F5-4176-A0F2-1C4E8B217156.jpeg

전에 배운 그리디 알고리즘으로도 풀 수 있는 거 같은데

 

질문2) 어떤 풀이가 더 효율적인 풀이인가요?

 

 

강의 잘보고 있습니다

항상 친절한 답변 주셔서 감사합니다

 

답변 1

답변을 작성해보세요.

0

안녕하세요^^

1) 네. 잘 하신 코드입니다.

2) 거스름 돈의 최소 동전 개수를 그리디로 풀려면 동전들이 서로 배수관계에 있어야만 가능합니다. 이 문제의 경우 그리디를 하면 안됩니다.

반례는 15원을 거슬러주는데 동전의 종류가 12, 5, 1이 있다면 그리디로는 12 : 1개, 1 : 3개로 총 4개이지만 15원은 5원 3개가 최소입니다.

두용님의 프로필

두용

질문자

2023.02.15

문제를 잘 이해하지 못하고 있었네요

반례를 주시고 다시 풀어보니

제 풀이가 틀린 풀이였네요

 

 

F62179EF-F6F8-40B7-A244-A4341BE710AE.jpeg

다시 풀어보았습니다