diff --git "a/\354\235\264\355\213\260\354\234\240\354\247\204/11279_\354\265\234\353\214\200 \355\236\231.py" "b/\354\235\264\355\213\260\354\234\240\354\247\204/11279_\354\265\234\353\214\200 \355\236\231.py" new file mode 100644 index 0000000..a2239aa --- /dev/null +++ "b/\354\235\264\355\213\260\354\234\240\354\247\204/11279_\354\265\234\353\214\200 \355\236\231.py" @@ -0,0 +1,16 @@ +import sys +import heapq + +n = int(sys.stdin.readline()) +heap = [] + +# -1을 곱해 최소 힙으로 최대 힙 구현 +for i in range (n): + x = int(sys.stdin.readline()) + if x == 0: # x가 0일 때 + if heap: # 배열에서 가장 큰 값 출력하고 그 값을 배열에서 삭제 + print((-1)*heapq.heappop(heap)) + else: # 배열이 비어있을 경우 0 출력 + print(0) + elif x > 0: # x가 자연수일 때 + heapq.heappush(heap,(-1)*x) # 배열에 x라는 값 추가 diff --git "a/\354\235\264\355\213\260\354\234\240\354\247\204/11650_\354\242\214\355\221\234 \354\240\225\353\240\254\355\225\230\352\270\260.py" "b/\354\235\264\355\213\260\354\234\240\354\247\204/11650_\354\242\214\355\221\234 \354\240\225\353\240\254\355\225\230\352\270\260.py" new file mode 100644 index 0000000..ea57f3b --- /dev/null +++ "b/\354\235\264\355\213\260\354\234\240\354\247\204/11650_\354\242\214\355\221\234 \354\240\225\353\240\254\355\225\230\352\270\260.py" @@ -0,0 +1,45 @@ +import sys + +n = int(sys.stdin.readline()) #n 입력 + +arr = [list(map(int,input().split())) for i in range(n)] #2차원 평면 위의 점 n개 입력 [[3,4],[1,1]] + +#병합정렬_merge +def merge(left, right): + i, j = 0, 0 + sorted_list = [] + while(i < len(left)) and (j < len(right)): + if left[i] < right[j]: + sorted_list.append(left[i]) + i += 1 + else: + sorted_list.append(right[j]) + j += 1 + if i == len(left): + while j < len(right): + sorted_list.append(right[j]) + j += 1 + elif j == len(right): + while i < len(left): + sorted_list.append(left[i]) + i += 1 + return sorted_list + +#병합정렬_merge sort +def merge_sort(arr): + if len(arr) <= 1: + return arr + #분할하고 분할된 리스트 각각 정렬 + mid = len(arr) // 2 + left = merge_sort(arr[:mid]) + right = merge_sort(arr[mid:]) + #병합 + return merge(left,right) + +#정렬 +arr = merge_sort(arr) +#좌표 출력 +for x, y in arr: + print(x,y) + + diff --git "a/\354\235\264\355\213\260\354\234\240\354\247\204/1431_\354\213\234\353\246\254\354\226\274 \353\262\210\355\230\270.py" "b/\354\235\264\355\213\260\354\234\240\354\247\204/1431_\354\213\234\353\246\254\354\226\274 \353\262\210\355\230\270.py" new file mode 100644 index 0000000..6f3a063 --- /dev/null +++ "b/\354\235\264\355\213\260\354\234\240\354\247\204/1431_\354\213\234\353\246\254\354\226\274 \353\262\210\355\230\270.py" @@ -0,0 +1,22 @@ +import sys + +n = int(sys.stdin.readline()) #기타 개수 n 입력 +s = [input() for i in range(n)] #시리얼 번호 n개 입력 + +#정렬 2_자릿수 합 +def sum(x): + r = 0 + for i in x: + if i.isdigit(): #isdigit(): 문자열이 숫자인지 판별 + r += int (i) + return r + +#정렬_ 1.길이 2.자릿수 합 3.사전순 +s.sort(key = lambda x: (len(x), sum(x), x)) + +#정렬된 리스트 s의 모든 요소 출력 +for i in s: + print(i) + + + diff --git "a/\354\235\264\355\213\260\354\234\240\354\247\204/1966_\355\224\204\353\246\260\355\204\260 \355\201\220.py" "b/\354\235\264\355\213\260\354\234\240\354\247\204/1966_\355\224\204\353\246\260\355\204\260 \355\201\220.py" new file mode 100644 index 0000000..cffb0e8 --- /dev/null +++ "b/\354\235\264\355\213\260\354\234\240\354\247\204/1966_\355\224\204\353\246\260\355\204\260 \355\201\220.py" @@ -0,0 +1,19 @@ +import sys +from collections import deque + +t = int(sys.stdin.readline()) #테스트 케이스 수 t + +for i in range(t): + n, m = map(int,input().split()) + queue = deque(list(map(int,input().split()))) #문서 중요도 queue + index_queue = deque(list(range(n))) #인덱스 idx_queue + cnt = 0 #인쇄 순서 cnt + while queue: + if queue[0] == max(queue): #queue의 첫번째 원소가 최댓값인 경우(가장 앞에 있는 문서의 중요도가 가장 클 경우) pop + cnt += 1 #pop할 때마다 cnt 1씩 증가 + queue.popleft() + if index_queue.popleft() == m: #pop한 문서의 인덱스가 m과 같다면 cnt 출력 + print(cnt) + else: + queue.append(queue.popleft()) #queue의 첫번째 원소가 최댓값 아닌 경우 맨 뒤로 재배치 + index_queue.append(index_queue.popleft()) \ No newline at end of file