[알고리즘] 정렬 - 백준 1181 3273 2075 11497 2170
알고리즘
2023. 3. 6. 22:22
정렬
정렬 알고리즘 5문제 풀기
백준 1181 단어 정렬
n = int(input())
words = []
for _ in range(n):
words.append(input())
words = list(set(words))
words.sort()
words.sort(key = lambda x:len(x))
for x in words:
print(x)
백준 3273 두 수의 합
import sys
n = int(input())
nums = list(map(int, sys.stdin.readline().rstrip().split()))
nums.sort()
x = int(input())
cnt = 0
left = 0
right = len(nums) - 1
while left < right:
tmp = nums[left] + nums[right]
if tmp > x:
right -= 1
elif tmp < x:
left += 1
else:
cnt += 1
left += 1
right -= 1
print(cnt)
투 포인터
백준 2075 N번째 큰 수
from collections import deque
N = int(input())
nums = []
q = deque([])
for _ in range(N):
num = list(map(int, input().split()))
num.sort(reverse = True)
if not q:
for x in num:
q.append(x)
else:
q = deque(sorted(q))
for y in num:
if q[0] < y:
q.append(y)
q.popleft()
print(min(q))
큐 써서 풀었는데 뭔가 잘 안써버릇해서 그런가 신기...
백준 11497 통나무 건너뛰기
from collections import deque
T = int(input())
ans = []
for _ in range(T):
n = int(input())
q = deque([])
tree = list(map(int, input().split()))
tree.sort()
res = 0
for i in range(2, n):
res = max(res, abs(tree[i] - tree[i-2]))
ans.append(res)
for x in ans:
print(x)
백준 2170 선 긋기
n = int(input())
line = []
for _ in range(n):
line.append(list(map(int, input().split())))
line.sort(key = lambda x: x[0])
length = []
ans = 0
for x, y in line:
if not length:
length.append(x)
length.append(y)
else:
if length[-1] > x:
# tmpx = length[-1]
if length[-1] > y:
continue
else:
length.pop()
length.append(y)
else:
ans += (length[1] - length[0])
length.pop()
length.pop()
length.append(x)
length.append(y)
print(ans + length[1] - length[0])
뭔가 스택인거같아서 스택처럼 풀어봄
'알고리즘' 카테고리의 다른 글
[알고리즘] 플로이드 - 백준 11403 1389 11404 2458 1956 14938 (0) | 2023.03.15 |
---|---|
[알고리즘] 다익스트라 - 백준 18352 1446 1916 5972 13549 17396 (0) | 2023.03.14 |
[알고리즘] DFS/BFS - 백준 2644 4963 2667 7562 16234 (0) | 2023.03.06 |
[알고리즘] 그리디 - 백준 1789 1449 11501 15903 2112 (0) | 2023.03.05 |
[알고리즘] DP(Dynamic Programming) - 백준 17202 9655 2579 2156 2565 1967 3020 (1) | 2023.03.04 |