🌞코딩테스트/🧡백준

[1655] 가운데를 말해요

hyerimmy 2021. 7. 30. 02:35

Date | 2021.07.30

https://www.acmicpc.net/problem/1655

 문제
수빈이는 동생에게 "가운데를 말해요" 게임을 가르쳐주고 있다. 수빈이가 정수를 하나씩 외칠때마다 동생은 지금까지 수빈이가 말한 수 중에서 중간값을 말해야 한다. 만약, 그동안 수빈이가 외친 수의 개수가 짝수개라면 중간에 있는 두 수 중에서 작은 수를 말해야 한다.예를 들어 수빈이가 동생에게 1, 5, 2, 10, -99, 7, 5를 순서대로 외쳤다고 하면, 동생은 1, 1, 2, 2, 2, 2, 5를 차례대로 말해야 한다. 수빈이가 외치는 수가 주어졌을 때, 동생이 말해야 하는 수를 구하는 프로그램을 작성하시오.
💬 입력
첫째 줄에는 수빈이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 수빈이가 외치는 정수가 차례대로 주어진다. 정수는 -10,000보다 크거나 같고, 10,000보다 작거나 같다.
💥 출력
한 줄에 하나씩 N줄에 걸쳐 수빈이의 동생이 말해야하는 수를 순서대로 출력한다.

 

 


 

👩‍🔧 코드 #1 - 시간초과

### 백준 1655 가운데를 말해요 ###
### https://www.acmicpc.net/problem/1655 ###

# 02:08 ~ 02:21 (13m)

# n 입력받기
n = int(input())

# 수 넣을 리스트 정의
list = []

# 결과 인덱스 넣을 리스트 정의
result = []

# 반복하며 결과값 리스트에 저장
for i in range(0,n):
  num = int(input()) # 새로운 수 입력받기
  list.append(num)
  list.sort()
  if len(list)%2 == 0: # 길이가 짝수면
    rindex = int(len(list)/2-1)
  else: # 길이가 홀수면
    rindex = int(len(list)/2)
  result.append(list[rindex])

# 결과 리스트 값 출력
for i in range(0,len(result)):
  print(result[i])

 

👩‍🔧 코드 #2 - 시간초과

### 백준 1655 가운데를 말해요 ###
### https://www.acmicpc.net/problem/1655 ###

# 02:08 ~ 02:21 (13m)

# n 입력받기
n = int(input())

# 수 넣을 리스트 정의
list = []

# 결과 인덱스 넣을 리스트 정의
result = []

# 반복하며 결과값 리스트에 저장
for i in range(0,n):
  num = int(input()) # 새로운 수 입력받기
  list.append(num)
  list.sort()
  if len(list)%2 == 0: # 길이가 짝수면
    rindex = int(len(list)/2-1)
  else: # 길이가 홀수면
    rindex = int(len(list)/2)
  result.append(list[rindex])

# 결과 리스트 값 출력
for i in range(0,len(result)):
  print(result[i])

 

 

👩‍🏫 알고리즘 노트