티스토리 뷰
문제
https://www.acmicpc.net/problem/1260
풀이
스위프트로는 어렵지 않게 풀었는데, 파이썬으로는 도저히 혼자 할 수가 없어서 참고하면서 풀었음.
Swift
import Foundation
let input = readLine()!.split(separator: " ").map { Int(String($0))! }
let n = input[0]; let m = input[1]; let v = input[2]
var dic: [Int: [Int]] = [:]
var visited = Array(repeating: false, count: n + 1)
var result = ""
for i in 0..<m {
let line = readLine()!.split(separator: " ").map { Int(String($0))! }
if dic[line[0]] == nil {
dic[line[0]] = [line[1]]
} else {
dic[line[0]]! = (dic[line[0]]! + [line[1]]).sorted(by: <)
}
if dic[line[1]] == nil {
dic[line[1]] = [line[0]]
} else {
dic[line[1]]! = (dic[line[1]]! + [line[0]]).sorted(by: <)
}
}
func dfs(_ num: Int) {
visited[num] = true
result += "\(num) "
if dic[num] != nil {
for i in dic[num]! {
if !visited[i] {
dfs(i)
}
}
}
}
func bfs() {
var queue = [v]
while !queue.isEmpty {
let cur = queue.removeFirst()
if visited[cur] {
continue
}
visited[cur] = true
result += "\(cur) "
if dic[cur] != nil {
for num in dic[cur]! {
if !visited[num] {
queue.append(num)
}
}
}
}
}
dfs(v)
print(result)
visited = Array(repeating: false, count: n + 1)
result = ""
bfs()
print(result)
Python
n, m, v = map(int, input().split())
dic = {i: [] for i in range(1,n+1)}
for i in range(m):
a,b = map(int, input().split())
dic[a].append(b)
dic[b].append(a)
visitedDfs = [False] * (n + 1)
visitedBfs = [False] * (n + 1)
resultDfs = []
resultBfs = []
for i in dic.values():
i.sort()
def dfs(num, visited):
visited[num] = True
resultDfs.append(num)
for number in dic[num]:
if not visited[number]:
dfs(number, visited)
def bfs(num, visited):
queue = [num]
visited[num] = True
while queue :
cur = queue.pop(0)
resultBfs.append(cur)
for number in dic[cur]:
if not visited[number] :
queue.append(number)
visited[number] = True
dfs(v,visitedDfs)
bfs(v,visitedBfs)
print(' '.join(map(str,resultDfs)))
print(' '.join(map(str,resultBfs)))
_____________________________________________________________________________________________________
파이썬 너무 어렵..
'PS' 카테고리의 다른 글
[Swift/Python] 백준_음식물 피하기(1743) (1) | 2023.03.11 |
---|---|
[Python] 백준_단지번호붙이기(2667) (0) | 2023.03.11 |
[Swift/Python] 백준_가장 큰 증가하는 부분 수열(11055) (0) | 2023.03.09 |
[Swift] 백준_암호 만들기(1759) (0) | 2023.02.18 |
[Swift] 프로그래머스_양궁대회 (0) | 2023.02.15 |
댓글
최근에 올라온 글
- Total
- Today
- Yesterday