코딩테스트

[프로그래머스] 1878 - 나머지 한 점(Python)

til_t 2021. 3. 6. 01:12

제출 코드

 

def solution(v):
	# x 좌표가 들어 있는 리스트
    x = []
    # y 좌표가 들어 있는 리스트
    y = []
    
    # 입력된 이중 리스트 순회
    for i in v:
    	# x는 x리스트에, y는 y리스트에 append
        x.append(i[0])
        y.append(i[1])
        # 만일 x리스트에 해당 x값이 두 개 있다면
        # 집합으로 중복값을 지우고, 리스트로 만든 후, 해당 값 삭제
        if x.count(i[0]) == 2:
            x = list(set(x))
            x.remove(i[0])
        # 만일 y리스트에 해당 y값이 두 개 있다면
        # 집합으로 중복값을 지우고, 리스트로 만든 후, 해당 값 삭제
        if y.count(i[1]) == 2:
            y = list(set(y))
            y.remove(i[1])
    # x리스트와 y리스트 연결
    x.extend(y)
    return x

 

사각형의 나머지 값은 즉, x와 y 리스트에서 한 번만 나온 값이다.

이중리스트를 순회하며 x 리스트와 y 리스트에 각각 x, y 값을 넣는다.

두 번 들어있는 값이 if 문에 걸리면 set()으로 중복을 제거하고 리스트로 만든 후, remove로 두 번 나왔던 값을 제거한다.

그렇게 되면 각각 x와 y 리스트엔 한 번만 나온 값만 남아있게 된다.

x 리스트에 y리스트를 연결하고 x를 리턴하면 나머지 직사각형의 한 점을 찾을 수 있다.