๋ฐ์ํ
๊ฒน์น๋ ์ ๋ถ์ ๊ธธ์ด
๋ฌธ์ ์ค๋ช
์ ๋ถ 3๊ฐ๊ฐ ํํํ๊ฒ ๋์ฌ ์์ต๋๋ค. ์ธ ์ ๋ถ์ ์์๊ณผ ๋ ์ขํ๊ฐ [[start, end], [start, end], [start, end]] ํํ๋ก ๋ค์ด์๋ 2์ฐจ์ ๋ฐฐ์ด lines๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ ๊ฐ ์ด์์ ์ ๋ถ์ด ๊ฒน์น๋ ๋ถ๋ถ์ ๊ธธ์ด๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด ๋ณด์ธ์.
lines๊ฐ [[0, 2], [-3, -1], [-2, 1]]์ผ ๋ ๊ทธ๋ฆผ์ผ๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ ๋ถ์ด ๋ ๊ฐ ์ด์ ๊ฒน์น ๊ณณ์ [-2, -1], [0, 1]๋ก ๊ธธ์ด 2๋งํผ ๊ฒน์ณ์์ต๋๋ค.
์ ํ ์ฌํญ
- lines์ ๊ธธ์ด = 3
- lines์ ์์์ ๊ธธ์ด = 2
- ๋ชจ๋ ์ ๋ถ์ ๊ธธ์ด๊ฐ 1 ์ด์์ ๋๋ค.
- lines์ ์์๋ [a, b] ํํ์ด๋ฉฐ, a, b๋ ๊ฐ๊ฐ ์ ๋ถ์ ์ ๋์ ์
๋๋ค.
- -100 ≤ a < b ≤ 100
์ ์ถ๋ ฅ ์
lines | result |
[[0, 1], [2, 5], [3, 9]] | 2 |
[[-1, 1], [1, 3], [3, 9]] | 0 |
[[0, 5], [3, 9], [1, 10]] | 8 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- ๋ ๋ฒ์งธ, ์ธ ๋ฒ์งธ ์ ๋ถ [2, 5], [3, 9]๊ฐ [3, 5] ๊ตฌ๊ฐ์ ๊ฒน์ณ์์ผ๋ฏ๋ก 2๋ฅผ return ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- ๊ฒน์น ์ ๋ถ์ด ์์ผ๋ฏ๋ก 0์ return ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #3
- ์ฒซ ๋ฒ์งธ์ ๋ ๋ฒ์งธ ์ ๋ถ์ด [3, 5] ๊ตฌ๊ฐ์์ ๊ฒน์นฉ๋๋ค.
- ์ฒซ ๋ฒ์งธ์ ์ธ ๋ฒ์งธ ์ ๋ถ [1, 5] ๊ตฌ๊ฐ์์ ๊ฒน์นฉ๋๋ค.
- ๋ ๋ฒ์งธ์ ์ธ ๋ฒ์งธ ์ ๋ถ [3, 9] ๊ตฌ๊ฐ์์ ๊ฒน์นฉ๋๋ค.
- ๋ฐ๋ผ์ [1, 9] ๊ตฌ๊ฐ์ ๋ ๊ฐ ์ด์์ ์ ๋ถ์ด ๊ฒน์ณ์์ผ๋ฏ๋ก, 8์ return ํฉ๋๋ค.
์ ์ถ
import Foundation
func solution(_ lines:[[Int]]) -> Int {
var table = Array(repeating: Set<Int>(), count: 200)
for i in 0..<lines.count{
for j in lines[i][0]..<lines[i][1]{
table[j+100].insert(i)
}
}
return table.filter{$0.count > 1}.count
}
์ ์ํ ์งํฉ์ ์์๋ก ๊ฐ๊ณ ์๋ ๋ฐฐ์ด table์ ์ ์ธํ๋ค. (-100 ≤ a < b ≤ 100 ์ด๊ธฐ ๋๋ฌธ์ 200๊ฐ)
lines ๋ฐฐ์ด์ ์์๋ฅผ ํ๋์ฉ ๋น๊ตํ์ฌ table์ ๋ช ๋ฒ์งธ ์ ๋ถ์ธ์ง ์ถ๊ฐํ๋ค.
table ๋ฐฐ์ด์ filter ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ด 2๊ฐ ์ด์์ธ ๊ตฌ๊ฐ(์ ์ด ๊ฒน์ณ์๋ ๊ตฌ๊ฐ)์ ๊ณ์ฐํ ํ, ๊ทธ ์๋ฅผ ๋ฐํํ๋ค.
๋ฐ์ํ
'โจ๏ธ Language > swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค LV.0] ํน์ดํ ์ ๋ ฌ (0) | 2023.01.04 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค LV.0] ์ ํ์์ ํ๋ณํ๊ธฐ (0) | 2023.01.04 |
[ํ๋ก๊ทธ๋๋จธ์ค LV.0] ํํ (0) | 2023.01.03 |
[ํ๋ก๊ทธ๋๋จธ์ค LV.0] ์ ์ฃผ์ ์ซ์ 3 (0) | 2023.01.03 |
[ํ๋ก๊ทธ๋๋จธ์ค LV.0] ์ธ๊ณ์ด ์ฌ์ (0) | 2023.01.02 |