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)