그리디 알고리즘 썸네일형 리스트형 [백준] 28324번: 스케이트 연습(파이썬) https://www.acmicpc.net/problem/28324 [문제 조건]스케이트를 타고 전진하는데, 구간마다 제한속도를 입력받는다.속력을 높일 때는 원하는 만큼 높일 수 있지만, 속력을 낮추는 경우에는 마지막으로 방문했던 지점에서의 속력에서 1만큼 낮출 수 있다.마지막 속력은 꼭 0이어야 한다. [해결 방법]마지막 속력은 꼭 0이어야 하므로 마지막 구간의 속력은 무조건 1이어야 한다. 그래서 입력받은 리스트의 뒤에서 부터 반복문으로 접근했다.count의 초기값을 1로 설정하고, 리스트의 요소를 뒤에서부터 하나씩 보면서 count와 비교한다.만약 count가 제한속도보다 작거나 같다면 속력이 count여야 하므로 result에 count를 더하고 count에 1을 추가해준다.만약 count가 제한.. 더보기 [백준] 15904번: UCPC는 무엇의 약자일까?(파이썬) https://www.acmicpc.net/problem/15904word에 문자열을 입력받고, 반복문을 통해 word를 하나씩 확인하면서 UCPC가 나왔는지 result에 기록한다.맨 처음에는 U가 입력받았는지만 확인하고, U가 입력받았다면 그 다음 C를 확인하는 식으로 구현하였다. word = input()result = [0,0,0,0] #UCPC순for i in word: if i == "U": result[0] = 1 elif i == "C": if result[0] == 1: result[1] = 1 if result[2] == 1: result[3] = 1 elif i == "P": if.. 더보기 [백준] 1931번: 회의실 배정(파이썬) https://www.acmicpc.net/problem/1931 접근 방법:1. 끝나는 시간을 기준으로 오름차순 정렬1.5. 만약 끝나는 시간이 같다면 시작하는 시간을 기준으로 오름차순 정렬(빨리 시작하는 회의를 먼저)arr.sort(key=lambda x:(x[1], x[0])) #끝나는 시간을 기준으로 오름차순 정렬(끝나는 시간이 같다면 시작하는 시간을 기준으로 오름차순 정렬)2. 다음 회의의 시작하는 시간이 현재 회의의 끝나는 시간보다 크다면 현재 회의의 끝나는 시간을 저장하고 count를 1추가num = int(input())arr = []for _ in range(num): #리스트에 입력값 담기 start, end = map(int, input().split()) arr.append([.. 더보기 [백준] 11047번 동전 0 (파이썬) 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 import sys N,K = map(int, sys.stdin.readline().split()) money_type = [] count = 0 for _ in range(N): money_type.append(int(sys.stdin.readline())) money_type.reverse() for money in money_t.. 더보기 이전 1 다음