Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 네트워크
- 시스템프로그래밍
- concurrency control
- 트랜잭션
- Extendable hashing
- 개발남노씨
- 김영한
- SDK
- 시그널 핸들러
- 운영체제
- 코딩애플
- B tree 데이터삽입
- 프로세스 주소 공간
- CPU 스케줄링
- 인터럽트
- 데이터베이스
- BreadcrumbsComputer-Networking_A-Top-Down-Approach
- vite
- 코딩테스트 [ ALL IN ONE ]
- 갤럭시 S24
- 운영체제와 정보기술의 원리
- recoverability
- SQL
- 쉬운 코드
- 백엔드
- 반효경
- 온디바이스AI
- Git
- 커널 동기화
- 쉬운코드
Archives
- Today
- Total
티끌모아 태산
Greedy[그리디] 본문
728x90
그리디 알고리즘은 '탐욕법'이라고도 하는데, 탐욕적으로 문제를 푸는 알고리즘이다. 핵심은 '현재 상황에서 지금 당장 좋은 것만 선택하는 방법' 이다. 그리디 알고리즘을 이용하면 ❗️매 순간 가장 좋아보이는 것을 선택하며 나중에 미칠 영향에 대해서는 고려하지 않는다. 보통 코딩테스트 유형을 보면 정형화 되어있는 문제들이 있는데, 그리디 알고리즘은 그렇지 않다. 사전에 외우지 않고 알고리즘 사고 능력을 통해 풀어야 하는 문제들이 출제된다. 즉, 문제의 유형이 매우 다양하기 떄문에 암기한다고 해서 항상 잘 풀 수 있는 알고리즘 유형이 아니다.
결국에는 많은 문제를 풀어보면서 훈련해야한다. 만약 회사 코딩테스트에서 문제로 그리디 알고리즘 문제를 출제했다면 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력이 있는가를 판단하기 위해서라고 생각하면 된다. 그리디 알고리즘의 가장 대표적인 예가 '거스름돈' 이다.
https://www.acmicpc.net/problem/5585
5585번: 거스름돈
타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사
www.acmicpc.net
# 거슬러 줘야하는 금액
n = 1000 - int(input())
# 동전의 화폐 단위
coin_types = [500, 100, 50, 10, 5, 1]
# 화폐 단위 하나씩 돌면서 잔돈의 개수 구하기
count = 0
for i in coin_types:
count += n // i
n %= i
print(count)
언제나 거스름돈 개수가 가장 적게 잔돌을 주기 위해서는 화폐단위가 가장 큰 금액부터 주면된다.
728x90
'CS 지식 > 자료구조,알고리즘' 카테고리의 다른 글
알고리즘 분석 - 시간 복잡도 (1) | 2023.12.22 |
---|---|
배열 (0) | 2023.08.17 |
Graph(2)-BFS/DFS (0) | 2023.08.15 |