0. 문제
1. 문제 생각
기하 골드 문제로, 처음부터 괄호 문제랑 연관해서 떠올리지는 못했다..🤦
힌트도 오히려 수학 문제처럼 줘서 더 헷갈릴 수 밖에 없었는데,
역시 백준에서 수학 문제가 나오면 자료구조나 알고리즘적 접근을 더 의심해보는 게 좋은 방향인 것 같다.
이 문제는 괄호 문제와 비슷하게 해결할 수 있다.
( ( ) ) 괄호들이 색깔들로 주어진다고 응용해서 생각하면 되고, 주어지는 상황 속에서 같은 모양의 '('이 들어갔다면 같은 모양의 ')'가 들어가 '('를 상쇄시켜주면 된다는 점에서 stack이라는 구조를 사용한다는 걸 떠올릴 수 있다.
2. 문제 풀이
import sys
input=sys.stdin.readline
N=int(input())
List=[]
for i in range(N):
x,y=map(int,input().split())
List.append((x-y,i))
List.append((x+y,i))
List=sorted(List)
stack=[]
for j in List:
if stack:
if stack[-1]==j[1]:
stack.pop()
else:
stack.append(j[1])
else: stack.append(j[1])
if stack : print("NO")
else: print("YES")
3. 한 번에 풀었는가? X
아이디어 생각을 못해 한 번에 풀었지만 한 번에 풀었다고 볼 수 없다ㅠ
'알고리즘 > 세부구현' 카테고리의 다른 글
[PS | 한 번에 맞자!] 백준 2629 (0) | 2023.07.23 |
---|---|
[PS | 한 번에 맞자!] 백준 1300 (0) | 2023.07.21 |
[PS | 한 번에 맞자!] 백준 10775 (0) | 2023.07.20 |
[PS | 한 번에 맞자!] 백준 17828 (0) | 2023.07.17 |
[PS | 한 번에 맞자!] 백준 15971 (0) | 2023.07.17 |