์์ฃผ ์ฝ๊ฒ ํ๋ฆด์ค ์๊ณ ๋ธ๋ก๊ทธ ์ ๋ก๋๋ฅผ ํ์ง ์์ผ๋ ค๊ณ ํ๋๋ฐ... ์๊ฐ์ด๊ณผ๊ฐ ๋ด๋ค.
๊ทผ๋ฐ, ์ด๊ฒ์ ๊ฒ ์ฐพ์๋ณด๊ณ ๋ฐฑ์ค์ ๋ค์ ธ๋ณด๋, ์ด ๋ฌธ์ ๋ ๋ญ๊ฐ swift๋ก ํ ์ ์๋ ๋ฌธ์ ์ธ๊ฒ ๊ฐ๋ค๋ ํ๋จ์ด ๋ด๋ ค์ก๋ค. (๋ด ์ค์ค๋ก)
โฐ ์ ์๊ฐ์ด๊ณผ ๋ณด๋ฅ?
๋ญ๊ฐ ์ด ๋ฌธ์ ๋ ์๊ฐ์ด๊ณผ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ ๊ฒ์ด๋ผ๋ ํ๋จ์ด ์ฐ๋ค. ์๋๋ฉด?
1. ์ผ๋จ, ๋๋ ํ์ด๊ณผ์ ์ ์๋ชป๋ ์ ์ ์ฐพ์ง ๋ชปํ๋ค.
์ธํฐ๋ท์ ์ฐพ์๋ณด๋ ๋์ ๋์ผํ ๋ฐฉ์์ผ๋ก ํผ C++, python๋ฑ์ ๋ชจ๋ ์ฝ๋๋ค์ ํต๊ณผํ๋ ๊ฒ์ ๋ณผ ์ ์์๋ค. ๊ทธ๋ ๋ค๋ฉด swift๋ก ํ์์๋ ์ด ํ์ด๊ณผ์ ์ด ์๋๋ค๋ ๊ฒ์ ๋ง์ด ๋์ง ์์๋ค.
2. ์๊ฐ๋ณต์ก๋๋ O(N)์ธ๋ฐ, 100๋ง์ด ํต๊ณผ๋์ง ์๋ ๊ฒ์ด ์ดํดํ ์ ์๋ค.
์ง๊ธ๊น์ง ์ค์ํํธ๋ก ํผ ๋ฌธ์ ๋ค๋ก ๋ณด์์ ๋, 1์ด๊ฐ ์ฃผ์ด์ก๋ค๋ฉด O(N), O(1)์ด๋ฉด ํต๊ณผํ ์ ์์๋ค. ๊ทผ๋ฐ ์ ์ด ๋ฌธ์ ๋ง ํต๊ณผ๊ฐ ํ๋ค๋ค๋ ๊ฒ์ผ๊น? ์ฐ์ ๋ฐฑ์ค์์ ๋ฌธ์ ๋ฅผ ํ ๋ ์ค์ํํธ๊ฐ ํ ์ธ์ด๋ณด๋ค ์กฐ๊ธ ๋๋ฆฌ๊ณ ์ฑ๋ฅ์ด ๊ตฌ๋ฆฌ๋ค๋ ์ฌ์ค์ ์๊ณ ์๋ค. ๋๋ฆฌ๋ค๊ณ ์๋ฌธ๋ ํ์ด์ฌ๊ณผ ๋น์ฅ ๋น๊ตํด๋ณด์์๋, ํ์ด์ฌ์ผ๋ก ํจ์๋ฅผ ํธ์ถํ๋ ์๊ฐ๋ณด๋ค ์ค์ํํธ๋ก ํจ์๋ฅผ ํธ์ถํ๋ ์๊ฐ์ด ํจ์ฌ ๊ธธ๋ค๊ณ ํ๋ค. (๋ฐฑ์ค์์)
๊ทธ๋์, ๋๋ ์ด๋ฒ ๋ฌธ์ ๋ฅผ Solution()์ด๋ผ๋ ํจ์๋ฅผ ๋ง๋ค์ด์ ๋ง์ง๋ง์ ํจ์๋ฅผ ํธ์ถํ๋ ๋ฐฉ์์ผ๋ก ํ์๋๋ฐ, ํจ์ํธ์ถ๋ฐฉ์์ ์ง์ฐ๊ณ print๋ก ๋ฐ๋ก๋ฝ์๋ฒ๋ฆฌ๋ ๋ฐฉ์์ ์ฌ์ฉํด๋ ์๊ฐ์ด๊ณผ๊ฐ ๋๋ ๊ฒ์ ๋๊ฐ๋ค.
์ผ๋จ,, ์ด ๋ฌธ์ ๋ ๋ณด๋ฅ,,,,
โซ๏ธ ๋ฌธ์
https://www.acmicpc.net/problem/2170
โซ๏ธ ํ์ด ๋ฐฉ๋ฒ
ํ์ด ๋ฐฉ๋ฒ์ ์์ฃผ ๊ฐ๋จํ๊ฒ ์๊ฐํด๋ผ ์ ์๋ค. ์ฃผ์ด์ง input๋ค์ x๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ํด์ค ๋ค, end์ง์ ์ ํ์ธํด๋ณด๋ ๊ฒ์ด๋ค. end๊น์ง ์ฐ๊ฒฐ์ด ๊ฐ๋ฅํ๋ฉด end๋ฅผ ๊ฐฑ์ ํด์ฃผ๊ณ , ๋ง์ฝ ์์์ ๊ฐ์ด ๋๊ฒจ์๋ค๋ฉด start์ end๋ชจ๋ ์๋กญ๊ฒ ๊ฐฑ์ ํ๋ ๋ฐฉ์์ผ๋ก ์งํํ๋ค.
๊ทธ๋ ๊ฒ ํผ ์ฒซ๋ฒ์งธ ํ์ด,, - ์๊ฐ์ด๊ณผ๊ฐ ๋ด๋ค.
import Foundation
private func solution() -> Int {
let n = Int(readLine()!)!
var xy = [[Int]]()
for _ in 0..<n {
xy.append(readLine()!.split(separator: " ").map{ Int($0)! })
}
xy = xy.sorted{ $0[0] < $1[0] }
var answer = 0
var start = xy[0][0]
var end = xy[0][1]
for i in 1..<n {
if end < xy[i][0] {
answer += end - start
start = xy[i][0]
end = xy[i][1]
} else {
if xy[i][1] <= end {
continue
} else {
end = xy[i][1]
}
}
}
answer += end - start
return answer
}
print(solution())
๋ฌผ๋ก , ์๊ฐ์ ์์ ๊ณ ๋ คํ์ง ์๊ณ ํผ ๊ฒ์ ์๋๋ค. ๋จ์ผ for๋ฌธ๋ง์ ์ฌ์ฉํ ์์ ์ด์๊ณ N์ 100๋ง ์ดํ๋ก ๋ค์ด์ค๊ธฐ ๋๋ฌธ์, ์๋ฌด๋ฆฌ for๋ฌธ์ ์ต๋๋ก ๋๋ ค๋ 100๋งํ ์ดํ์ผ ๊ฒ์ด๋ผ๊ณ ํ๋จํ๊ณ , ์ด๋ ๊ฒ ๋๋ฉด 1์ด๋ ์ถฉ๋ถํ ๊ฐ๋ฅํ๋ค๊ณ ํ๋จํ๋ค. (O(N)) ๊ทผ๋ฐ ์จ์๋...
'Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] (Swift) 1744๋ฒ - ์ ๋ฌถ๊ธฐ (๊ณจ๋4, ๊ทธ๋ฆฌ๋) (0) | 2023.05.16 |
---|---|
[๋ฐฑ์ค] (Swift) 2457๋ฒ - ๊ณต์ฃผ๋์ ์ ์ (๊ทธ๋ฆฌ๋, ๊ณจ๋3) (1) | 2023.05.15 |
[๋ฐฑ์ค] (Swift) 11501๋ฒ - ์ฃผ์ (์ค๋ฒ2, ๊ทธ๋ฆฌ๋) (0) | 2023.04.25 |
[๋ฐฑ์ค] (Swift) 1697๋ฒ - ์จ๋ฐ๊ผญ์ง (์ค๋ฒ1, ๋๊ฐ์ง ํ์ด BFS, DP) (2) | 2023.04.22 |
[๋ฐฑ์ค] (Python) 2293๋ฒ - ๋์ 1 (๊ณจ๋5, dp) (0) | 2023.04.01 |