문제 출처: www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 1 . 문제 접근 방식 - 먼저 무게를 입력 받고 오름차순 정렬을 한뒤 뒤집어서 [a*1, b*2, ...]의 방식을 사용하여 원소들 중 최대 값을 구하면 될 것이라고 생각하였다. 2 . 내가 푼 코드 import sys N = int(sys.stdin.readline()) new_list = [] # N개를 입력받은 후 리스트에 넣음 for i in range(N): w = int(sys..
문제 출처: www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 1 . 문제 접근 방식 - 간단하게 문제의 조건만 따라가면 쉽게 코드를 작성할 수 있었다. 최소 값을 구하기 위해서는 두 개의 리스트 모두 오름차순 정렬을 하고 교차해서 곱하면 최소값을 쉽게 구할 수 있다. 2 . 내가 푼 코드 import sys N = int(sys.stdin.readline()) # list 형식으로 입력받고 오름차순 정렬 A = sorted(list(map(int, s..
문제출처: www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 1 . 문제 접근 방식 - 문제를 잘 읽어보니 시간을 list 형태로 오름차순 정렬한 후 총 걸리는 시간을 계산하면 최소값이 출력된다는 것을 알게 되었다. 2 . 내가 푼 코드 import sys # 첫번째 줄에 N을 입력 받음 N = int(sys.stdin.readline()) # int형태로 입력받아 list를 만듦과 동시에 오름차순 정렬 time = sorted(list(map(int, sys.stdin.readline()..
문제 출처: www.acmicpc.net/problem/1449 1449번: 수리공 항승 첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나 www.acmicpc.net 1 . 문제 접근 방식 - 그리디 알고리즘을 떠올리면서 처음부터 탐색해 나아가며 시작점을 초기화 하는 방법을 이용하였다. 2 . 내가 푼 코드 import sys N, L = map(int, sys.stdin.readline().split()) # 물이 새는 곳을 list형식으로 받고 오름차순 정렬 leak = sorted(list(map(int, sys.stdin.readline(..