정답 코드
var board = [[Int]](repeating: [Int](repeating: 0, count: 100), count: 100)
for _ in 0..<Int(readLine()!)! {
let coordinates = readLine()!.split(separator: " ").map( { Int($0)! })
let x = coordinates[0]
let y = coordinates[1]
for i in x..<x + 10 {
for j in y..<y + 10 {
board[i][j] = 1
}
}
}
let ans = board.flatMap( { $0 }).reduce(0, +)
print(ans)
코드 설명
- 빈 공간이 모두 0 으로 초기화된 board를 만든다.
- 사각형의 공간들에 1을 채웁니다. 중복된 영역도 1로 추가됩니다.
- 2차원 board를 flatMap으로 1차원을 만들고 reduce함수로 board 내부에 값을 모두 더해줍니다.
https://www.acmicpc.net/problem/2563
'코딩테스트 > 문제풀이-2' 카테고리의 다른 글
[선택] 1026 보물 [정렬][그리디] (0) | 2024.02.14 |
---|---|
[선택] 11650 좌표 정렬하기 [정렬] (0) | 2024.02.08 |
[선택] 2750 수 정렬하기 [정렬] (0) | 2024.02.01 |
[선택] 4396 지뢰찾기 [2차원 리스트] (0) | 2024.02.01 |
[필수] 1931 회의실 배정 [정렬][그리디] (0) | 2024.01.30 |
[필수] 2630 색종이 만들기 [이차원 리스트][재귀] (1) | 2024.01.30 |