728x90
반응형
데이터 추가로 아래 정답 코드는 오답처리 되어 영상 재촬영 하였습니다. 따라서 해당 영상과 새로운 글(https://roamingman.tistory.com/75)을 참고해주세요.
문제 링크
https://www.acmicpc.net/problem/11650
정답 코드는 아래와 같습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
N = 100000
def solve():
n = int(input())
arr = []
for _ in range(n):
a, b = [int(x) + N for x in input().split()]
tmp = a * 2 * N + b
arr.append(tmp)
arr.sort()
for item in arr:
a = item // (2 * N)
b = item % (2 * N)
print(a - N, b - N)
solve()
|
cs |
이 문제의 상황은 현업에서 상당히 자주 맞닥뜨리는 상황입니다.
여기서는 좌표가 그 객체이지만, 좌표가 아닌 다른 임의의 객체에 대해서도 이런 식으로 정렬해야 하는 상황이 발생할 수 있습니다.
예를 들어서 Person 이라는 객체가 있고, 여기에 이름, 나이, 국적, 등의 정보가 있다고 할 때, 이러한 데이터가 많이 있을 때 이를 "크기" 에 따라 정렬해야 하는 문제라고 볼 수 있습니다.
보통은 비교를 위한 함수를 따로 작성하고 sorting 하는 함수에 비교 함수를 넣어주곤 합니다.
이렇게 풀었어야 문제의 취지에 맞았을 것 같은데;
728x90
코드나 영상을 보면 아시겠지만 저는 조금 다르게 풀었습니다.
결국 2차원을 1차원으로 변환한 다음에 정렬하고 다시 1차원을 2차원으로 변환한 것입니다.
"저렇게 풀 수도 있구나" 정도 생각해주시면 좋을 것 같습니다.
풀이는 아래 영상을 참고 바랍니다.
https://www.youtube.com/watch?v=2_bBFFUlIao
저작권 라이선스: CC BY (출처만 표시하면 자유롭게 이용 가능)
728x90
반응형
'백준(BOJ) 문제 풀이' 카테고리의 다른 글
백준 11659번 문제(구간 합 구하기 4) 파이썬(Python) 풀이 [로밍맨] (0) | 2021.09.04 |
---|---|
백준 11654번 문제(아스키 코드) 파이썬(Python) 풀이 [로밍맨] (0) | 2021.09.02 |
백준 11066번 문제(파일 합치기) 파이썬(Python) 풀이 [로밍맨] (0) | 2021.08.23 |
백준 10998번 문제(AXB) 파이썬(Python) 풀이 [로밍맨] (0) | 2021.08.20 |
백준 10952번 문제(A+B - 5) 파이썬(Python) 풀이 [로밍맨] (0) | 2021.08.19 |