2019.01.30) 백준 2309번 풀이
2019. 1. 30. 11:24ㆍ프로그래밍(주력)/백준 문제풀이
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | input_list = list() sum = 0 # 모든 난장이의 키를 합함 for i in range(9): input_list.append(int(input())) sum += input_list[i] end = False for i in range(9): now = sum - input_list[i] for j in range(i + 1, 9): # 두명의 난쟁이의 키를 합에서 뺴서 100이 된다면 결과 if now - input_list[j] == 100: input_list.pop(j) input_list.pop(i) end = True break if end: break # 병합정렬 def mergeSort(li): if len(li) <= 1: return li m = len(li) // 2 # 중간 기점 l = li[:m] # 중간을 기준으로 왼쪽 r = li[m:] # 중간을 기준으로 오른쪽 # 양쪽으로 트리 생성 lr = mergeSort(l) rr = mergeSort(r) i = j = 0 re = list() # 트리끼리 순서에 맞게 정렬 while i < len(lr) and j < len(rr): if lr[i] < rr[j]: re.append(lr[i]) i += 1 elif lr[i] > rr[j]: re.append(rr[j]) j += 1 else: re += lr[i:] re += rr[j:] return re input_list = mergeSort(input_list) for item in input_list: print(item) | cs |
'프로그래밍(주력) > 백준 문제풀이' 카테고리의 다른 글
2019.02.03) 백준 1167번 풀이 (PyPy3) (0) | 2019.02.03 |
---|---|
2019.02.02) 백준 11725번 풀이 (PyPy3) (0) | 2019.02.02 |
2019.02.01) 백준 1991번 풀이 (0) | 2019.02.01 |
2019.01.31) 백준 2231번 풀이 (0) | 2019.01.31 |
2019.01.29) 백준 2075번 풀이 (0) | 2019.01.29 |