[swea] 10580. 전봇대

yeongbin·2022년 5월 17일
0

swea

목록 보기
6/6

문제 바로가기

  • 난이도 : D3
t = int(input())

for tc in range(1, t+1):
    N = int(input())
    wires = []
    for i in range(N):
        wires.append(list(map(int, input().split())))

    cross = 0
    for i in range(N-1):
        for j in range(i+1 , N):
            if wires[i][0] > wires[j][0] and wires[i][1] > wires[j][1]:
                pass
            elif wires[i][0] < wires[j][0] and wires[i][1] < wires[j][1]:
                pass
            else:
                cross += 1

    print(f"#{tc} {cross}")

두 개의 전봇대가 있고 각 전선은 첫 번째 전봇대의 A위치에 걸려있고 두 번째 전봇대의 B위치에 걸려있다.

가장 먼저 전선이 교차하는 경우를 생각해보았다. 두 전봇대에 위치한 전선의 좌표가 주어졌을때 모든 전선끼리 비교하여 A,B 모두 크거나 작아야지 교차가 생기지 않는다.

모든 전선을 비교하기 위해 wires라는 리스트를 만들어 모든 전선의 A,B를 저장하였고 이중포문을 이용하여 각각의 전선을 비교하였다. A와 B 모두 크거나 작은 조건에 걸리지 않는 전선이 있을 경우 하나씩 세어 출력하였다.

profile
꾸준함의 가치를 알자

0개의 댓글