반응형
SW Expert Academy 2063: 중간값 찾기
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
- 문제
입력으로 N개의 숫자가 주어지면 이걸 정렬했을 때 중앙에 있는 값을 출력하는 문제다.
- 풀이
N = int(input())
# map 형식으로 저장(int형으로 모든 값을 저장하는데 input().split()을 통해 띄워쓰기 되어 있으면 분리) 후 리스트로 만듬
numbers = list(map(int, input().split()))
numbers.sort() # 오름차순으로 정렬
# 중간값은 총길이/2 +1인데, 배열은 0부터 시작이니 +1 안해도 됨
answer = numbers[N//2]
print(answer)
정렬의 여러가지 방법(버블 정렬, 힙 정렬 등)을 이용해서 시간복잡도를 줄이는 것이 중요한 문제인 것 같은데, 시간이 널널한 경우에는 간단한 내장함수를 이용하는 것이 좋다고 생각한다!
정렬 후에 중앙에 있는 값을 빼면 되는 간단한 문제였습니다.
// : 나눌때 정답이 무조건 정수형으로 나오도록 나누는 방법
input().split() : 입력값을 띄워쓰기 형식으로 나누는 방법, split("/")처럼하면 띄워쓰기가 아니라 /를 기준으로 나눈다.
- 기억할 것!
- sort()를 사용하지 않더라도 정렬을 손코딩 할 수 있도록 다양한 정렬 방법을 익혀둘 것!
반응형
'Algorithm > SW Expert Academy' 카테고리의 다른 글
SWEA 1226 : 미로1(S/W 문제해결 기본)[파이썬] (0) | 2022.05.28 |
---|---|
SWEA 2005 : 파스칼의 삼각형(D2)[파이썬] (0) | 2022.05.26 |
SWEA 1926 : 간단한 369게임(D2)[파이썬] (0) | 2022.05.13 |
SWEA 2071 : 평균값 구하기(모의 SW D1)[파이썬] (0) | 2022.05.10 |
SWEA 5658 : 보물상자 비밀번호 (모의 SW 역량테스트)[파이썬] (0) | 2022.05.09 |