2019.01.29) 백준 2075번 풀이

2019. 1. 29. 23:19프로그래밍(주력)/백준 문제풀이


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
= int(input())
find = list()
 
for i in input().split(' '):
    i = int(i)
    if len(find) == 0:
        find.append(i)
        continue
    if i > find[0]:
        find.insert(0, i)
    elif find[0> i > find[-1]:
        for k in range(len(find) - 1):
            if find[k] > i > find[k + 1]:
                find.insert(k + 1, i)
    else:
        find.append(i)
 
for i in range(n - 1):
    for j in input().split(' '):
        j = int(j)
        if j > find[0]:
            find.insert(0, j)
            find.pop(n)
        elif find[0> j > find[-1]:
            for k in range(len(find) - 1):
                if find[k] > j > find[k + 1]:
                    find.insert(k + 1, j)
                    find.pop(n)
 
print(find[-1])
 
cs

위 코드는 주인장이 파이썬3(pypy3)으로 구현한 코드이다.

선택정렬을 통해 힙을 구현하였다.


처음 받는 5개로 큰순서대로 5번인 숫자들만 find 리스트 안에 넣고,

6번째 이상부턴 .pop()으로 제거하였다.