T = int(input())
for tc in range(1,1+T):
n = int(input())
# 전선을 저장하기 위한 빈 list
wire_check = []
# 교차점
cnt = 0
for q in range(n):
wire = list(map(int,input().split()))
# 왼쪽 전봇대에서 전선의 위치
wire_l = wire[0]
# 오른쪽 전봇대에서 전선의 위치
wire_r = wire[1]
if wire_check != 0:
for w in wire_check:
# 교차점이 생기는 경우
if (w[0] < wire_l and w[1] > wire_r) or (w[0] > wire_l and w[1] < wire_r):
# 교차점 추가
cnt += 1
# 새로운 전선 추가
wire_check.append(wire)
else:
wire_check.append(wire)
print('#{} {}'.format(tc,cnt))
그 외
문제 해결에 대한 아이디어
이처럼 두개의 전선(a, b)이 있을 때, /// a_l(왼쪽 전봇대에서의 a의 위치), a_r(오른쪽 전봇대에서의 a의 위치)
a_l, a_r의 값이 각각 b_l, b_r 보다 모두 크거나 작은 경우에는 교차점이 생기지 않음
==
a_l > b_l인 경우에는 a_r < b_r인 경우에만 교차점이 생기며, 반대로 a_l < b_l인 경우에는 a_r > b_r인 경우에만 교차점이 생김
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다
'코딩 문제해결 > 문제 풀이.SWEA' 카테고리의 다른 글
[SWEA 코딩] 삼성시의 버스 노선 - PYTHON #6485 (2) | 2021.01.07 |
---|---|
[SWEA 코딩] 제곱 팰린드롬 수 - PYTHON #10570 (0) | 2021.01.07 |
[SWEA 코딩] 소득 불균형 - PYTHON #10505 (0) | 2021.01.07 |
[SWEA 코딩] 이진수 표현 - PYTHON #10726 (0) | 2021.01.07 |
[SWEA 코딩] 문자열의 거울상 - PYTHON #10804 (0) | 2021.01.06 |