일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 프로그래머스
- sw정글사관학교
- 정글sw
- 자바스크립트 문자열 변수
- conding test
- javascript
- Express
- python
- onChange
- 자바스크립트
- 리액트
- 목록 창 만들기
- PINTOS
- Spring
- sw 정글
- 코딩테스트
- node.js
- JavaScrpit
- HTML
- malloc-lab
- dfsbfs
- 템플릿 문자열
- 회원가입 폼
- SW정글
- 백준
- html input
- Coding Test
- React
- 사용자 정의 객체
- 회원가입
Archives
- Today
- Total
코드치고 무게치고
[백준 python] 18310번 안테나 - 그리디 본문
[백준 python] 18310번 안테나 - 그리디
레벨: 실버 3
언어: python
📑풀이 과정
1. 모든 경우 계산
처음 문제를 보고 모든 값 집의 위치 마다 거리를 계산 했다.
이 경우 n^2의 시간 복잡도를 가지는데 입력값의 최대가 200,000이라서 무조건 시간 초과가 나오게 된다.
2. 다른 풀이
수학적으로 생각하면 간단하게 풀 수 있는 문제이다.
모든 집까지의 거리의 총합이 가장 작으려면 일직선 상에서 가운데에 가까울 수록 총합이 적어진다.
그래서 배열에 집의 위치를 저장하고 정렬 후 중앙값을 찾아서 출력하면 된다.
📋풀이 코드
import sys
input = sys.stdin.readline
N = int(input())
arr = list(map(int, input().split(' ')))
arr.sort()
print(arr[(N-1)//2]
'개발공부 > 코딩테스트 준비' 카테고리의 다른 글
[백준 python] 1449번 수리공 항승 - 그리디 (0) | 2022.03.05 |
---|---|
[백준 python] 1049번 기타줄 - 그리디 (0) | 2022.03.04 |
[백준 python] 1448번 삼각형 만들기 (삼각형의 조건) - 그리디 (0) | 2022.03.03 |
[백준 python] 15904번 UCPC는 무엇의 약자일까? - 그리디 (0) | 2022.03.03 |
[백준 python] 1037번 약수 (0) | 2022.03.02 |
Comments