Algorithm
[Softeer] Level 3 문제
09009
2023. 11. 2. 21:27
성적 평균
https://softeer.ai/practice/6294
import sys
input = sys.stdin.readline
n,k = map(int,input().split())
arr = list(map(int,input().split()))
sum_arr = [0] * (n+1)
tmp = 0
for i in range(len(arr)):
tmp += arr[i]
sum_arr[i+1] = tmp
for _ in range(k):
a,b = map(int,input().split())
answer = (sum_arr[b] - sum_arr[a-1])/ (b-a+1)
print("%0.2f" %answer)
우물 안 개구리
https://softeer.ai/practice/6289
import sys
input = sys.stdin.readline
n,m = map(int,input().split())
arr = [0] + list(map(int,input().split()))
graph = [[] for _ in range(n+1)]
for _ in range(m):
a,b = map(int,input().split())
graph[a].append(b)
graph[b].append(a)
ans = 0
for i in range(1, n+1):
for j in graph[i]:
if arr[i] <= arr[j]:
break
else:
ans += 1
print(ans)
스마트 물류
https://softeer.ai/practice/6279
import sys
input = sys.stdin.readline
n,k = map(int,input().split())
arr = list(input())
ans = 0
for i in range(n):
if arr[i] == 'P':
for j in range(max(0, i-k), min(i+k+1, n)):
if arr[j] == 'H':
ans += 1
arr[j] = 'X'
break
print(ans)
강의실 배정
https://softeer.ai/practice/6291
import sys
import heapq
input = sys.stdin.readline
n = int(input())
heap = []
for _ in range(n):
start, end = map(int,input().split())
# 끝나는 시간이 가장 작은 것을 맨 앞에 삽입
heapq.heappush(heap, (end, start))
end_time = 0
cnt = 0
while heap:
if heap[0][1] >= end_time:
end_time = heapq.heappop(heap)[0]
cnt += 1
continue
heapq.heappop(heap)
print(cnt)