본문 바로가기

그리디알고리즘7

이것이취업을위한코딩테스트다 - Chapter 03 1.당장 좋은 것만 생각하는 그리디 이전 글: 이것이취업을위한코딩테스트다 - Chapter 01 코딩테스트 개요 3. 시간과 메모리 측정 주제 그리디 알고리즘에 대해 알아보자. 이름에서 알 수 있듯이 어떠한 문제가 있을 때 단순 무식하게, 탐욕적으로 문제를 푸는 알고리즘이다. 내용 탐욕적이라는 말은 '현재 상황에서 지금 당장 좋은 것만 고르는 방법'을 의미한다. 그리디 알고리즘의 문제 유형은 앞으로 다루게 될 알고리즘과 비교했을 때 '사전에 외우고 있지 않아도 풀 수 있을 가능성이 높은 문제 유형'이라는 특징이 있다. 반면 이후에 공부할 정렬, 최단 경로 등의 알고리즘 유형은 이미 그 알고리즘의 사용 방법을 정확히 알고 있어야만 해결이 가능한 경우가 많다. 예제 3-1 거스름돈 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, .. 2021. 7. 28.
파이썬 백준 11022번 A+B - 8 A+B를 바로 위 문제보다 아름답게 출력하는 문제 문제 설명 A+B 출력 형태에서 출력만 조금 다르게 변경하면 된다. 이번에는 "Case #x: A + B = C" 형식으로 출력한다. ​ 풀이 과정 Point 1: 몇 회인지 Case 횟수를 정의하고 매 횟수마다 index를 나타내어 Case #x에 넣어야 한다. Point 2: 기본 A+B를 구현할 수 있어야 한다. Point 3: 출력 시 integer (정수) 형태와 문자열 및 띄어쓰기를 제대로 구별할 수 있어야 한다. ​ import sys for i in range(1,int(sys.stdin.readline())+1): A,B=map(int,sys.stdin.readline().split()) print("Case","#"+str(i)+":", A,"+",B,"=",A+B) - 입력 인자 받기.. 2021. 3. 26.
파이썬 백준 11021번 A+B - 7 11021번: A+B - 7 (acmicpc.net) 11021번: A+B - 7 각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다. www.acmicpc.net A+B 출력 형태는 앞에서도 여러 번 다뤄왔던 주제이다. 이번에는 Case #x를 붙여서 나열 해 보자. ​ Point 1: 몇 회인지 index를 나타낸 후 Case #x에 넣어야 한다. Point 2: 기본 A+B를 구현할 수 있어야 한다. import sys N=sys.stdin.readline() N=int(N) for index in range(1,N+1): A,B = map(int,sys.stdin.readline().split()) print("Case #"+str(.. 2021. 3. 26.
파이썬 백준 2839번 설탕 배달 https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1.. 2021. 3. 26.