1. 문제 출처 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 2. 풀이 제일 회의가 빨리 끝나는 순으로 생각해주는 그리디 알고리즘 문제이다. import sys # 입력받기 n = int(sys.stdin.readline()) greedy_list = [] for _ in range(n): start , end = map(int,sys.stdin.readline().split(" ")) greedy_list.append((start,end)) # 끝나는 시간을 기준으로 정렬 # 이때 끝나는 시간이 같ㅇ을 경우 시작하는 시간으로 정렬해야 한다. # 왜냐하면 ..
1. 문제 출처 https://www.acmicpc.net/problem/13413 13413번: 오셀로 재배치 로봇을 좋아하는 세희는 로봇동아리에서 카메라와 센서, 라즈베리 파이, 집게발을 이용해 로봇을 완성하였다. 이 로봇을 통해서 오셀로 재배치라는 작업을 하려고 한다. 오셀로 말은 앞면이 검 www.acmicpc.net 2. 풀이 그리드 알고리즘 문제로 뒤집어야 하는 돌의 위치를 먼저 파악 후 자리를 바꾸는 돌을 파악한다. # 그리디 알고리즘을 사용하여 먼저 색깔의 차이를 확인한 후 # 자리를 바꾸도록 한다. #입력 t = int(input()) for _ in range(t): size = int(input()) init = input() goal = input() result = 0 change..
1. 문제 출처 https://www.acmicpc.net/problem/1969 1969번: DNA DNA란 어떤 유전물질을 구성하는 분자이다. 이 DNA는 서로 다른 4가지의 뉴클레오티드로 이루어져 있다(Adenine, Thymine, Guanine, Cytosine). 우리는 어떤 DNA의 물질을 표현할 때, 이 DNA를 이루는 뉴클레오 www.acmicpc.net 2. 풀이 그리디 알고리즘을 이용한 문제이다.. 힌트에 브루투포스 알고리즘도 적혀있던데 왜일까?? hamming_distance 구하는 과정이 모든 dna와 연산해야 해서 그런가? # 입력 n,m = map(int,input().split()) dnas = [] for _ in range(n): dnas.append(input()) # ..
1. 문제 출처 https://www.acmicpc.net/problem/10162 10162번: 전자레인지 3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은 www.acmicpc.net 2. 풀이 단순 그리디 알고리즘 문제이다. # 입력 t = int(input()) btn = [300,60,10] push = [] # 가장 큰값부터 나눈다. for time in btn: push_count = t//time t -= time*push_count push.append(push_count) # 정확히 나누어 떨어지지 않으면 -1 출력 if t !=0: pr..
문제 출처 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 해결(코드) 단순한 그리디 알고리즘 문제이다. # 동전 갯수 , 목표 액수 받기 input_list = input().split() N = int(input_list[0]) K = int(input_list[1]) # 동전 개수 만큼 배열 생성 coin_list = [0] * N # 빈리스트로 생성 해서 append해도 되..