방의 개수

방의 개수

Prov

선을 그은 후 폐곡선 갯수 구하기

Solv

  1. 한 번 방문했던 노드를 다시 방문
    선분을 오고 갔는지 구분 불가
  2. 선분인 경우를 구분하는 방법
    선을 그릴 때 양 끝 노드를 key값으로 하는 딕셔너리의 value인 리스트에 추가하고 그 노드의 리스트에 새로운 노드가 있는지 확인
  3. 대각선 처리
    범위를 2배로 해서 대각선의 겹치는 부분이 노드가 되도록 해결

Check

(0,0), (1,0), (0,1)을 지나는 삼각형 경우
(0,1)->(0,0)의 과정에서 (0,0)의 리스트에 (0,1)이 포함되어 있지 않음
따라서 폐곡선이 맞음

  
(0,0)->(1,0){(0,0) : [(1,0)],
(1,0) : [(0,0)]}
(1,0)->(0,1){(0,0) : [(1,0)]
(1,0) : [(0,0),(0,1)],
(0,1) : [(1,0)]}
(0,1)->(0,0){(0,0) : [(1,0),(0,1)]
(1,0) : [(0,0),(0,1)],
(0,1) : [(1,0),(0,0)]}

(0,0), (0,1)을 지나는 선분의 경우
(0,1)->(0,0)의 과정에서 (0,0)의 리스트에 (0,1)이 포함되어 있음
따라서 폐곡선이 아님

  
(0,0)->(0,1){(0,0) : [(0,1)],
(0,1) : [(0,0)]}
(0,1)->(0,0)x

Ref

https://velog.io/@narastro/[프로그래머스] 방의 개수 (Python)


Modified by Sungbin Shim