[Coding Test]
[백준] 1655 파이썬(python) : 가운데로 말해요 - 상세해설
https://www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net import heapq import sys # 시간초과 방지 n = int(sys.stdin.readline()) max_heap = [] #1 min_heap = [] for i in range(n): num = int(sys.stdin.readline()) if len(max_heap) == len(min_heap): #2 heapq.heappush(max_heap, -num)..
[백준] 11286 파이썬(python) : 절댓값 힙 - (★)
https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net import sys, heapq n = int(sys.stdin.readline()) heap = [] for _ in range(n): x = int(sys.stdin.readline()) if not heap and x == 0: #1 print(0) elif x != 0: #2 heapq.heappush(heap, (abs(x), x)) elif x == 0: #3 pr..
[백준] 1927 파이썬(python) : 최소 힙
https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net import heapq import sys n = int(input()) heap = [] for i in range(n): num = int(sys.stdin.readline()) #1 if num != 0: heapq.heappush(heap, num) else: try: print(heapq.heappop(heap)) except: print(0) 11279번 최대 힙이랑..
[백준] 11279 파이썬(python) : 최대 힙
https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net import sys, heapq n = int(sys.stdin.readline()) heap = [] for _ in range(n): x = int(sys.stdin.readline()) if not heap and x == 0: #1 print(0) elif heap and x == 0: #2 print(heapq.heappop(heap)* -1) elif x != 0: ..
[백준] 11478 파이썬(python) : 서로 다른 부분 문자열의 개수 - (★)
11478번 : 서로 다른 부분 문자열의 개수 import sys string = sys.stdin.readline().rstrip() res = set() #1 for i in range(len(string)): for j in range(i, len(string)): #2 res.add(string[i:j+1]) #3 print(len(res)) #1 : 서로 중복되는 부분을 자동으로 제거해 주기 위해 .set() 생성자 이용 #2 : 1자리 부터 string의 길이까지 하나하나 자르기 위해 range(i, len(string))로 설정 #3 : 인덱스 슬라이싱이 [a:b]이면 a부터 b-1까지인것을 생각해서 j+1로 설정. 처음 i = 0, j = 0일때 [0:0]이 되서 한자리 문자가 잘려나오지 ..
[백준] 1269 파이썬(python) : 대칭 차집합
https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net n, m = map(int, input().split()) a = set(map(int, input().split())) b = set(map(int, input().split())) c = a ^ b print(len(c)) 대칭 차집합 사용법은 https://hgk5722.tistory.com/59에 있다. [Python] 파이썬 .set() 생성자 사용법 1. set은 딕셔너리와 같이 ..