N개의 좌표가 주어졌을 때, 이 좌표들을 연결하는 선들 중에서 수직선과 수평선의 개수를 출력하시오.
예를 들어, 4개의 좌표 (0, 0) (1, 0) (0 1) (1 1) 이 주어지면 2개의 수직선과 2개의 수평선이 생긴다.
Input
첫째 줄에 좌표의 개수 N이 주어진다. (1 <= N <= 10000)
둘째 줄부터 N개의 줄에 한 줄에 하나씩 좌표의 x, y 값이 주어진다.
4
0 0
0 1
1 0
1 1
11
0 0
0 1
1 0
1 1
1 2
2 2
3 2
2 3
3 3
3 4
4 4
Output
첫째 줄에 수직선의 개수를 출력한다.
둘째 줄에 수평선의 개수를 출력한다.
2
2
4
5
import sys
input = sys.stdin.readline
n = int(input())
number = [list(map(int, input().split())) for _ in range(n)]
xpoint = {} # 수직선 해시 테이블
ypoint = {} # 수평선 해시 테이블
def sol(number):
for x, y in number:
if x in xpoint:
xpoint[x]+=1
else:
xpoint[x]=1
if y in ypoint:
ypoint[y]+=1
else:
ypoint[y]=1
sol(number)
xanswer = [x for x in xpoint.values() if x>1]
yanswer = [y for y in ypoint.values() if y>1]
print(len(xanswer))
print(len(yanswer))
'Problem Solving' 카테고리의 다른 글
[DP] 세보나치 수열 (0) | 2022.12.14 |
---|---|
[Hash Table] 에너그램 정렬 (0) | 2022.12.13 |
[Hash Table] 로마숫자의 소인수 (0) | 2022.12.13 |
[Hash Table] 과일 가게: 많이 팔린 순서로 정렬 (0) | 2022.12.13 |
[Hash Table] 과일가게: 가장 많이 팔린 과일 (0) | 2022.12.13 |