-
(프로그래머스 #43165) 타겟 넘버 [DFS]breakthrough-algorithms💔/TIL⛰️ 2025. 3. 18. 09:00



프로그래머스 Lv2 풀이 기술하기
1. 배열을 문자열로 입력받는다.
2. 문자열을 Int 배열로 변환한다.
3. '순서있는 배열'이니, 방향노드로 adj 인접 배열을 작성한다.
4. 배열의 0번째 index 를 시작점으로 잡는다.
5. visit 배열, Int 배열의 length에 맞게 생성
(이 부분이 생각하는데 좀 걸린다. 최단거리때는 visited이면 방문하면 안됐지만, 여기서는 배열 마지막까지 방문해야하니, 배열의 내용물이 아니라 index로 접근해야할 것 같다)
6. 시작점을 (아마 index로 [0]으로?) stack 배열에 넣는다.
7. stack 을 pop 한다. 그러면 시작점이 나온다. 이렇게 시작점으로 시작이다.
8. pop한 값의 인접 노드를 stack 배열에 넣는다.
9. stack 을 pop 한다.
10. pop한 값의 인접 노드를 stack 배열 에 넣는다
...
이렇게 8~10 을 DFS 로 전부 탐색할때까지 반복한다.
코드
start() func start() { var start = 0 , end = 0 var pointer = start var numbers: [Int] = [] let input = readLine() if let input = input { numbers = input.filter { $0.isNumber || $0 == "," } .split(separator: ",") .compactMap { Int($0) } } var adj: [[Int]] = Array(repeating: [], count: numbers.count) for (idx, value) in numbers.enumerated() { adj[idx].append(value) } }문제
https://school.programmers.co.kr/learn/courses/30/lessons/43165
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
'breakthrough-algorithms💔 > TIL⛰️' 카테고리의 다른 글
(BOJ #1389🔴) 케빈 베이컨의 6단계 법칙 (4) 2024.12.13 (BOJ #11724🔴) 연결 요소의 개수 (1) 2024.12.13 (BOJ #11720) 숫자의 합 (0) 2024.11.27 (BOJ #10809) 알파벳 찾기 (0) 2024.11.27 (BOJ #3052) 나머지 (0) 2024.11.27