Search

[백준 2358] 평행선

[백준 2358] 평행선

Tip

x 좌표가 같은 점, y 좌표가 같은 점들끼리 하나의 직선을 이룰 수 있음.
dictionary 자료구조를 사용, 그 중 활용도가 높은 defaultdict
x좌표가 같은 y 값들, y좌표가 같은 x 값들을 리스트 형태로 저장
how to? → default(list)로 빈 리스트로 초기화하여 여러 값들을 묶을 수 있게

풀이 소스 코드

import sys from collections import defaultdict si = sys.stdin.readline n = int(si()) # 딕셔너리의 기본값으로 빈 리스트 지정 x_dict = defaultdict(list) y_dict = defaultdict(list) result = 0 for _ in range(n): x, y = map(int, si().split()) x_dict[x].append(y) # x좌표가 같은 y값끼리 하나의 리스트에 담기게 됨. y_dict[y].append(x) # y좌표가 같은 x값끼리 하나의 리스트에 담기게 됨. # key값 마다 해당 value 리스트의 길이가 2를 넘어가면 전부 같은 직선으로 간주 for key in x_dict: if len(x_dict[key]) >= 2: result += 1 for key in y_dict: if len(y_dict[key]) >= 2: result += 1 print(result)
Python