목록dfs (7)
MUKER_DEV with iOS
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nVc3N/btsbUpHYHBN/gvheMBw1OjhPqYpPjtUf1k/img.png)
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 성공 풀이 func solution(_ numbers:[Int], _ target:Int) -> Int { var count = 0 func dfs(_ index: Int,_ sum: Int) { if index == (numbers.count) { if sum == target { count += 1 } return } dfs(index+1, sum + numbers[index]) dfs(index+1, sum - numbers[index]) } dfs(0, 0) return count } 풀이 키워드 DFS
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/I5yo2/btsak27XItO/6mpGSbkNbRB9mYjRXVcx70/img.png)
11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 성공 풀이 (BFS) let NM = readLine()!.split(separator: " ").map { Int($0)! } let N = NM[0], M = NM[1] var arr = Array(repeating: [Int](), count: N+1) var visited = [Bool](repeating: false, count: N+1) var count = 0 for _ in 0..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bbOaz1/btr9rhfJ0qh/IX7tlFXvkhCJH0qpCkeni1/img.png)
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 func solution(_ word:String) -> Int { let alphabet = ["A","E","I","O","U"] var arr = [String]() func DFS(_ s: String) { arr.append(s) if s.count == alphabet.count { return } for i in 0..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dgYe5u/btr60DdyjFR/Lu9oV18wDNnbNm9lqKp9ck/img.png)
1520번: 내리막 길 첫째 줄에는 지도의 세로의 크기 M과 가로의 크기 N이 빈칸을 사이에 두고 주어진다. 이어 다음 M개 줄에 걸쳐 한 줄에 N개씩 위에서부터 차례로 각 지점의 높이가 빈 칸을 사이에 두고 주어진다. www.acmicpc.net 나의 풀이 struct Node { // r,c를 넘겨주기 위한 node var r: Int var c: Int } let MN = readLine()!.split(separator: " ").map { Int($0)! } let M = MN[0] // 세로의 크기 let N = MN[1] // 가로의 크기 let rx = [0,0,-1,1] // x축 이동 let ry = [1,-1,0,0] // y축 이동 var map = [[Int]]() var cnt ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Lt9J0/btr5BJ6XM3C/fqCi3dt74ilwJLRWWoyNPK/img.png)
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 var computer = [[Int]]() var visited = [Bool]() func solution(_ n:Int, _ computers:[[Int]]) -> Int { computer = computers visited = Array(repeating: false, count: n) var answer = 0 for i in 0..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bAHdU0/btr5vtXPPPe/zYM6270amo0hOUcYH2tNKK/img.png)
2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 나의 풀이 let computerCount = Int(readLine()!)! let networkCount = Int(readLine()!)! var network = Array(repeating: [Int](), count: computerCount+1) var virus = [1] var result = [Int]() for _ in 0..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/btXU4V/btr1Mm7X6rT/xt1ufCNefCoXuAyMGkPXJ0/img.png)
1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 문제 푸는 데 있어 도움이 되도록 나의 풀이와 개선된 풀이를 올립니다. 또한 풀이 후 다른 사람의 풀이를 보고 참고할만한 풀이도 올립니다. - 문제에 따라 나의 풀이만 있을 수 있습니다. - 해당 풀이들은 풀이 중 하나일 뿐 최선의 풀이는 아닐 수 있습니다. 나의 풀이 let input = Int(readLine()!)! var farm = [[Bool]]() // 1 var visited = [[Bool]]() let dirX = [1, -1, 0, 0] let dirY ..