inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2-B

강사님 질문있습니다!

262

공부합시다

작성한 질문수 9

0

안녕하세요 강사님 새해 복 많이 받으세요~

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인데 많이 비슷해서 읽으시는데는 문제 없으실겁니다!

C++ 코테 준비 같이 해요!

답변 1

1

큰돌

안녕하세요 Daesoo Ahn 님 ㅎㅎ

일단 저 문제는 인접행렬로 풀지 않았습니다. 주어진 맵을 기반으로 풀었고 해당 부분은 2주차 개념강의에 설명되어있는데 참고부탁드립니다.

그리고 저 문제는 인접리스트로 풀면 안됩니다. 뭐 풀수야 있겠지만 삽으로도 할 수 있는 것을 숫가락으로 하는 느낌입니다. 주어진 맵으로 푸는게 더 좋습니다.

또한, 질문 주실 때 0주차 : 질문하시는 법 참고 하셔서 부탁드립니다.

감사합니다.

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