코딩테스트 - 그리디 알고리즘

Park Jungmin·2022년 1월 21일
0

코딩테스트

목록 보기
2/5

문제1)



=> 500원 2개, 100원 2개, 50원 1개, 10원 1개

python 코드

n = 1260
count = 0

array = [500, 100, 50, 10]
for coin in array:
    count += n // coin
    n %= coin
print(count)

시간 복잡도 : 화폐의 종류가 N개일 때, 시간 복잡도는 O(N) => 거슬러주어야 하는 금액과 무관하고 화폐의 종류에 영향을 받음

문제2)



Python 코드


내가 작성한 코드


예시 답안. 이렇게 작성하게 되면 시간 복잡도가 log시간 복잡도로 줄어들어 더 효율적이라고 한다.

문제3)


Python 코드


처음에는 이렇게 작성했는데 실행시간이 오버되어서 고민을 하다가 if문의 조건식을 1이하라고 비교하면 될 것 같다는 생각이 들었다.

그런데 실행시간이 오히려 0.1초 증가했다....

예시 답안)

그런데 이 예시 답안으로 돌리면 내가 짠 코드보다 실행시간이 2초가량 더 오래 걸린다....

문제4)




오름차순 정렬까지는 했는데 그 이후 어떤 식으로 문제를 해결해야할지 막혔다.

예시답안)

참고 : https://www.youtube.com/watch?v=2zjoKjt97vQ&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=2

0개의 댓글