문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/86052
visited 배열을 y, x, 그리고 방향까지 3차원으로 정의해주는 것이 핵심인 문제였습니다.
알고리즘은 아래와 같습니다.
1. 가로길이를 벡터의 크기, 세로 길이를 문자열의 길이, 그리고 방향은 상하좌우 4로 선언해줍니다.
2. 1번처럼 설정해준 다음에는 모든 방향에 대해 BFS를 진행해주면 되는 문제였습니다.
2.1 각각의 노드를 어느 방향에서 통과하는지 설정이 안 되어있으므로 4가지 방향 모두 체크해줘야 하며
2.2 좌표는 0 이상이므로 모듈러 연산을 통해 적절히 다음 좌표를 지정해줘야 합니다. (getCycleLength 메서드 참고)
3. 2번을 통해 구한 사이클의 길이들을 벡터에 넣고 오름차순 정렬을 한 뒤 반환해줍니다.
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
반응형
'알고리즘 > programmers' 카테고리의 다른 글
[Programmers 위클리 챌린지 11주차] 아이템 줍기 (2) | 2021.10.20 |
---|---|
[Programmers 위클리 챌린지 10주차] 교점에 별 만들기 (0) | 2021.10.14 |
[Programmers] 없는 숫자 더하기 (0) | 2021.10.08 |
[Programmers] 110 옮기기 (0) | 2021.10.08 |
[Programmers] 2개 이하로 다른 비트 (2) | 2021.10.07 |