강사님 질문있습니다!
262
작성한 질문수 9
안녕하세요 강사님 새해 복 많이 받으세요~
1012번 문제는 인접행렬로 풀으셨는데 인접리스트로 푸는 방법은 없을까요?
"인접행렬로는 앞 문제에서 풀어봤으니까 인접리스트로 풀어봐야지!" 해서 풀어보고 있는데 dfs가 안되는것 같아서 질문드려봅니다!
import Foundation
var testCase = Int(readLine()!)!
var visited: [Bool] = []
var adjList: [[Int]] = [[]]
for _ in 0..<testCase {
let info = readLine()!.split(separator: " ").map { Int($0)! }
let M = info[0] // 주의! 보통 세로 가로이지만 여기서는 가로 세로이다.
let N = info[1]
let K = info[2]
print(search(N,M,K))
}
func search(_ N: Int, _ M: Int, _ K: Int) -> Int {
var result = 0
adjList = [[Int]](repeating: [], count: M)
visited = [Bool](repeating: false, count: M)
for _ in 0..<K {
let point = readLine()!.split(separator: " ").map { Int($0)! }
let x = point[0]
let y = point[1]
adjList[y].append(x)
}
// MARK: - 지금까지는 데이터 다 들어감 이제 dfs돌리기
for i in 0..<N {
if visited[i] == false {
print("now: \(i)")
result += 1
dfs(i)
}
}
return result
}
func dfs(_ node: Int) {
visited[node] = true
for i in 0..<adjList[node].count {
if visited[adjList[node][i]] == false {
dfs(adjList[node][i])
}
}
}언어는 swift인데 많이 비슷해서 읽으시는데는 문제 없으실겁니다!
답변 1
1
안녕하세요 Daesoo Ahn 님 ㅎㅎ
일단 저 문제는 인접행렬로 풀지 않았습니다. 주어진 맵을 기반으로 풀었고 해당 부분은 2주차 개념강의에 설명되어있는데 참고부탁드립니다.
그리고 저 문제는 인접리스트로 풀면 안됩니다. 뭐 풀수야 있겠지만 삽으로도 할 수 있는 것을 숫가락으로 하는 느낌입니다. 주어진 맵으로 푸는게 더 좋습니다.
또한, 질문 주실 때 0주차 : 질문하시는 법 참고 하셔서 부탁드립니다.
감사합니다.
0
기본이 안되어있는 것은 아니구요... ㅎㅎ 질문은 잘하셨는데 일단 스위프트는 아직 제가 익숙하지가 않아서 그 언어로는 디버깅을 잘 못드리고... C++로 해주시구요.ㅎㅎㅎ 해당 강의 듣고 해당 부분만 지켜주시면 조금 부탁드립니다.ㅎㅎㅎ
Daesoo님도 새해복 많이 받으세요!!
언제든 질문주세요. ㅎ
1-E질문입니다!
0
518
2
3-L 틀린 부분 피드백 부탁드립니다.
0
822
2
1-A문제 순열재귀함수 질문입니다.
0
385
1
1-A 일곱난쟁이문제입니다
0
457
1
문제 풀 때 방향성에 대해
0
801
1
맥에서 vs code로 실행 관련 질문입니다
0
523
1
17071번 메모리 초과
0
386
1
1-C질문입니다!
0
421
2
2-B BFS 시간초과질문
0
630
2
1-O 13번 라인
0
442
1
6-J 놀이공원 문제 질문
0
381
1
구현관련 질문
0
484
1
강의 교안
0
319
1
실력을 더 올리고나서 강의를 보는 것이 맞을까요?
0
545
1
안녕하세요! 재귀함수에 관해서 질문드립니다
0
536
1
1-K
0
473
2
3-G번 질문있습니다.
1
473
3
3-C 실행 시간 질문드립니다.
0
494
1
4-A 문제 풀이 질문있습니다.
0
590
2
비트마스킹 연산자 "1의 보수" 영문 표기법
0
435
1
격자탐색 문제에서 BFS 시간복잡도 질문드립니다.
0
334
1
3-O go 함수 질문 드립니다.
1
447
2
4-A 출력 질문
0
305
1
1주차 1-O 질문드립니다
0
259
1





