요구능력
구현
문제풀이
나도 저분의 게시글을 보고 공부했다.
.
.
후기
방향하나하나 생각못하고 한번에 돌리다가 시간을 낭비했다..
규칙은 못찾았지만, 구조설계는 어느정도 맞게했다.
코드
var n = Int(String(readLine()!))!//드래곤커브개수
var arr = [[Int]]()
for _ in 0..<n{
arr.append(readLine()!.split(separator: " ").map{Int(String($0))!})
}
var visited = Array(repeating: Array(repeating: false, count: 101), count: 101)
let dx = [0, -1, 0, 1]
let dy = [1, 0, -1, 0]
var result = 0
for i in arr{
let x = i[1]
let y = i[0]
let d = i[2] //방향
let g = i[3] //세대
visited[x][y] = true //처음좌표
var nx = x + dx[d]
var ny = y + dy[d]
visited[nx][ny] = true
var stack = [Int]()
stack.append(d)
for _ in stride(from: 1, through: g, by: 1){
for j in stride(from: stack.count - 1, through: 0, by: -1){
var k = stack[j] + 1
if k == 4{ k = 0 }
nx = nx + dx[k]
ny = ny + dy[k]
visited[nx][ny] = true
stack.append(k)
}
}
}
for i in 0...100{
for j in 0...100{
if visited[i][j]{
if i + 1 > 100 || j + 1 > 100{
continue
}
if visited[i][j] && visited[i + 1][j] && visited[i][j + 1] && visited[i + 1][j + 1]{
result += 1
}
}
}
}
print(result)
'Algorithm > 문제풀이_백준' 카테고리의 다른 글
[Swift][Two-Pointer] 백준 1806번 (부분합) (0) | 2022.05.09 |
---|---|
[Swift][구현] 백준 2290번 (LCD Test) (0) | 2022.04.26 |
[Swift][구현] 백준 14503번 (로봇청소기) (0) | 2022.04.20 |
[Swift][Bruteforce] 백준 6064번(카잉 달력) (0) | 2022.04.11 |
[Swift][BFS] 백준 1600번 (말이 되고픈 원숭이) (0) | 2022.04.08 |
댓글