본문 바로가기

알고리즘 삽질장

[이코테] 정렬 - 안테나

반응형

해당 포스팅의 문제의 출처는 나동빈님의 이것이 취업을 위한 코딩 테스트 교재를 공부하면서 풀이할 때 본인의 사고 과정 흐름과 문제 풀이를 기록하기 위함 입니다. 

 


문제설명

하단의 링크를 참조하자.

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

 

18310번: 안테나

첫째 줄에 집의 수 N이 자연수로 주어진다. (1≤N≤200,000) 둘째 줄에 N채의 집에 위치가 공백을 기준으로 구분되어 1이상 100,000이하의 자연수로 주어진다.

www.acmicpc.net

사고과정

  • 시간 내에 풀지 못했다. 주어진 집 리스트에서 정렬 후 중위수 값을 반환하면 되는 것 같았는데 뭔가 아닌 것 같아서 다른 방법을 찾아보다가 포기했다. 간단한 해결책을 떠올렸는데도 이를 확신으로 이어지는 근거를 찾는 게 더 어렵다..
  • 주의해야 할 점은 중위수를 구할 때 리스트 개수는 N-1이기 때문에 인덱싱할 때 (N-1) // 2 해주는 것 잊지말기..

풀이(스스로 못 품)

import sys

# n: 집의 개수
n = int(input())
house = list(map(int, input().split()))
house.sort()

res = house[(n-1)//2]
print(res)
반응형