요구능력
구현
문제풀이
문제의 조건에 힌트를 모두 주었다.
두 배열중 하나에 포함된다는건 B는 필수적으로 A배열을 포함하고 있기 때문에 B만갖고있는것을 말한다.
가장 중요한건 빼기할때 절댓값이다..
for i in 0..<h+x{
for j in 0..<w+y{
if bArr[i][j] == 0 {continue} //둘다포함x
if i < h && j < w {// 두 배열 모두에 포함되면
aArr[i][j] = bArr[i][j]
if i - x >= 0 && j - y >= 0{ //
aArr[i][j] = abs(aArr[i - x][j - y] - bArr[i][j])
}
}else{//b에만 포함되면
aArr[i - x][j - y] = bArr[i][j]
}
}
}
후기
절댓값때메 몇번을 다시했는지..
코드
let hwxy = readLine()!.split(separator: " ").map{Int(String($0))!}
let h = hwxy[0]
let w = hwxy[1]
let x = hwxy[2]
let y = hwxy[3]
var bArr = [[Int]]()
for _ in 0..<h+x{
bArr.append(readLine()!.split(separator: " ").map{Int(String($0))!})
}
var aArr = Array(repeating: Array(repeating: 0, count: w), count: h)
for i in 0..<h+x{
for j in 0..<w+y{
if bArr[i][j] == 0 {continue} //둘다포함x
if i < h && j < w {// 두 배열 모두에 포함되면
aArr[i][j] = bArr[i][j]
if i - x >= 0 && j - y >= 0{ //
aArr[i][j] = abs(aArr[i - x][j - y] - bArr[i][j])
}
}else{//b에만 포함되면
aArr[i - x][j - y] = bArr[i][j]
}
}
}
for i in aArr{
for j in i{
print(j, terminator: " ")
}
print()
}
'Algorithm > 문제풀이_백준' 카테고리의 다른 글
[Swift][구현] 백준 15662 (톱니바퀴(2)) (0) | 2022.05.18 |
---|---|
[Swift][구현] 백준 17406번 (배열 돌리기 4) (0) | 2022.05.17 |
[Swift][구현] 백준 16931번 (겉넓이 구하기) (0) | 2022.05.13 |
[Swift][비트마스킹] 백준 1062번 (가르침) (0) | 2022.05.11 |
[Swift][브루트포스] 백준 2143번 (두 배열의 합) (0) | 2022.05.10 |
댓글