본문 바로가기
Algorithm/Programmers

[코딩테스트 연습] 방문 길이

by BAYABA 2020. 5. 9.

 

<출처: https://programmers.co.kr/learn/courses/30/lessons/49994?language=cpp>


2차원 배열 위를 탐색하면서 중복되지 않은 Edge의 개수를 구하는 문제입니다.

 

Edge는 (시작점좌표, 끝점좌표) 두 개의 정보를 가지고 있습니다.

 

이를 다양한 저장방식으로 저장하면 됩니다.

 

1. visit[11][11][11][11]

2. 좌표 1개를 하나의 int로 만들어서, 두 좌표를 두 int로 만든 후set<pair<int,int>>로 관리

3. 좌표 4개를 하나의 스트링으로 묶어서 set<string>으로 관리

 

단, 첫 번째 방식은 그래프 크기가 100만 넘어가도 메모리 초과가 나므로 지양해야 합니다.


<코드: https://github.com/cottory/algorithm/blob/master/PROGRAMMERS/summer_winter02.cc>