Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- sqld
- db
- SSAFYcial
- VITE
- QuerySetAPI
- 백준
- 싸피
- 데코레이터
- vitepwa
- 리액트
- pwa적용하기
- 싸피셜
- queryset
- Javascript
- TypeScript
- js
- 14658
- SQL
- unionfind
- 싸피10기
- git
- 머신러닝종류
- 플로이드워셜
- react
- SSAFY
- Django
- Python
- PWA
- 알고리즘
- 셀프넘버
Archives
- Today
- Total
Meme's IT
[백준] 14658번 하늘에서 별똥별이 빗발친다 본문
14658번: 하늘에서 별똥별이 빗발친다
첫째 줄에 네 정수 N, M, L, K가 주어진다. (1 ≤ N, M ≤ 500,000, 1 ≤ L ≤ 100,000, 1 ≤ K ≤ 100) N은 별똥별이 떨어지는 구역의 가로길이, M은 세로길이, L은 트램펄린의 한 변의 길이, K는 별똥별의 수를
www.acmicpc.net
브루트포스, 라고는 나와있는데 구글링 했을 때랑 다르게 풀었음
K의 갯수가 100개 이하이므로 K기준으로 진행
12 10 4 7
2 4
7 3
3 1
5 6
4 7
12 10
8 6
해당 예제에서 별의 위치를 받고, 얘네를 우선 x기준으로 정렬을 해준다.
[(2, 4), (3, 1), (4, 7), (5, 6), (7, 3), (8, 6), (12, 10)]
이런식으로 x기준으로 정렬을 한 다음 앞에서부터 한개씩 뽑아서
x에 L을 더한 거에 범위안에 들어가는 것들을 뽑아서 다시 행렬을 만든다
예를 들어, (2, 4)기준으로 보면 여기서 L이 4니까 2가 가장 왼쪽이라면 x의 최대값은 이 점의 x좌표인 2와 L의 합인 6이 될것이다. 이렇게 되면 위의 행렬에서 (7, 3)이후의 점들은 빠지게되고, x기준으로 가능한 애들을 빼서 따로 행렬을 만들어준다.
[(2, 4), (3, 1), (4, 7), (5, 6)]
그 다음에, 이 행렬을 y기준으로 sort를 해준다.
[(3, 1), (2, 4), (5, 6), (4, 7)]
그 다음에, 아까랑 똑같이 처음 점부터 y에 L을 더해서 그 안에 있는 애들만 필터링해준다.
이렇게 돌려서 가장 최대값이 되는 것을 저장하면서 진행하면 끝!
전체 코드
# 하늘에서 별똥별이 빗발친다
N, M, L, K = map(int,input().split())
stars = []
for _ in range(K):
a, b = map(int, input().split())
stars.append((a, b))
# x 기준으로 정렬
stars.sort()
# [(2, 4), (3, 1), (4, 7), (5, 6), (7, 3), (8, 6), (12, 10)]
ans = 1
for i in range(K - 1):
temp = [stars[i]]
for j in range(i + 1, K):
if stars[j][0] <= stars[i][0] + L:
temp.append(stars[j])
# 이걸 다시 y기준으로 정렬해서
temp.sort(key=lambda x: x[1])
maxcnt = 1
for p in range(len(temp) - 1):
cnt = 1
for q in range(p + 1, len(temp)):
if temp[q][1] <= temp[p][1] + L:
cnt += 1
if cnt > maxcnt:
maxcnt = cnt
if maxcnt > ans:
ans = maxcnt
print(K - ans)
'알고리즘 > 문제풀이' 카테고리의 다른 글
[백준] 4485번, 녹색 옷 입은 애가 젤다지? (0) | 2023.10.13 |
---|---|
[백준] 1326번, 폴짝폴짝 (0) | 2023.10.06 |
[SWEA] 창용 마을 무리의 개수 (0) | 2023.09.23 |
[SWEA]Ugly Number - 파이썬 (2) | 2023.08.22 |