2022. 10. 2. 16:16ใํ๋ก๊ทธ๋๋จธ์ค-Swift
ํ๋ก๊ทธ๋๋จธ์ค - ์ฒด์ก๋ณต(Swift)
๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/42862
๋์ ํ์ด
์ฌ๋ถ์ด ์๋ ๋ฐฐ์ด์ ํ์ํ๋ฉด์ ์์ด๋ฒ๋ฆฐ ๋ฐฐ์ด์ ๊ฐ์ด ์กด์ฌํ๋ค๋ฉด ์์ ๊ณ , ์์ ๋ฒํธ๊ฐ ์กด์ฌํ๋ค๋ฉด ์์๋ถํฐ, ๊ทธ ๋ค์ ๋ค์ ๋ฒํธ๊ฐ ์กด์ฌํ๋ค๋ฉด ๋ค์ ๋ฒํธ์๊ฒ ์ค์ ํด๊ฒฐํ์ง๋ง 20๊ฐ์ ํ ์คํธ์ผ์ด์ค์์ 1๊ฐ์ ํ ์คํธ์ผ์ด์ค๋ฅผ ํต๊ณผํ์ง ๋ชปํ๋ค.
๊ณ ๋ฏผ ํ ์ง๋ฌธํ๊ธฐ๋ฅผ ํตํด 5๋ฒ ํ ์คํธ์ผ์ด์ค์ ๋ฌธ์ ๋ฅผ ํ์ธํ๋๋ฐ ์ฌ๋ถ์ด ์๋๋ฐ ์์ด๋ฒ๋ฆฐ ๊ฒฝ์ฐ๋ ์ฌ๋ถ์ด ์๋ ๋ฐฐ์ด์ ํ์ํ๊ธฐ ์ ์ ์ฒ๋ฆฌํด์ค์ผ ํ๋ค๋ ๊ฒ์ด์๋ค.
์๋ฅผ ๋ค์ด [5, 7]์ด ์์ด๋ฒ๋ฆฐ ๋ฐฐ์ด์ด๊ณ [4, 5, 8]์ด ์ฌ๋ถ์ ๋ฐฐ์ด์ผ ๋ ์ฌ๋ถ์ ๋ฐฐ์ด์ ๋ฐ๋ก ํ์ํ๋ฉด 4๋ฒ์ด 5๋ฒ์ ์ฒด์ก๋ณต์ ๋น๋ ค์ฃผ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ๋ ๊ฒ์ด๋ค. (์๋๋ ์์ด๋ฒ๋ฆฐ ๋ฒํธ์ ์ฌ๋ถ์ ๋ฒํธ๊ฐ ๊ฐ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ ์๊ธฐ๋ฅผ ์ ์ธํด์ผ ํ๋ค)
๋ฌธ์ ๋ฅผ ์ ์ฝ์ด๋ณด๊ณ ๋ก์ง์ ์ฒ๋ฆฌํ๋ ๋ฅ๋ ฅ์ด ๋ถ์กฑํ๋ค.
์ฌ๋ฒ ์ฒด์ก๋ณต์ ๊ฐ์ ธ์จ ํ์์ด ์ฒด์ก๋ณต์ ๋๋๋นํ์ ์ ์์ต๋๋ค. ์ด๋ ์ด ํ์์ ์ฒด์ก๋ณต์ ํ๋๋ง ๋๋๋นํ๋ค๊ณ ๊ฐ์ ํ๋ฉฐ, ๋จ์ ์ฒด์ก๋ณต์ด ํ๋์ด๊ธฐ์ ๋ค๋ฅธ ํ์์๊ฒ๋ ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค.
import Foundation
func solution(_ n:Int, _ lost:[Int], _ reserve:[Int]) -> Int {
var lostArr = lost.sorted(by: <)
var reserveArr = reserve.sorted(by: <)
reserveArr = reserveArr.filter{
if lostArr.contains($0) {
if let index = lostArr.firstIndex(of: $0) {
lostArr.remove(at: index)
}
return false
} else {
return true
}
}
for num in reserveArr {
if lostArr.contains(num-1) {
if let index = lostArr.firstIndex(of: num-1) {
lostArr.remove(at: index)
}
} else if lostArr.contains(num+1) {
if let index = lostArr.firstIndex(of: num+1) {
lostArr.remove(at: index)
}
}
}
return n-lostArr.count
}
ํผ๋๋ฐฑ
1. ๋ฌธ์ ๋ ๋ชจ๋ ๋ฌธ์ฅ์ด ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์ ์จ๊ฒจ์ง ์๋ฏธ๋ฅผ ์ฐพ์ผ๋ ค๊ณ ๋ ธ๋ ฅํด์ผํ๋ค.
2. ๋ฐฐ์ด์ ๊ฐ์ ์ง์ฐ๋ ๊ฒ์ remove๋ filter๋ก ์ง์ธ ์ ์์ผ๋ฉฐ remove๋ฅผ ์ด์ฉํ ๋๋ firstIndex๋ก ์ฐพ๊ณ if let๋ฐ์ธ๋ฉ์ ํตํด์ ์ง์์ผํ๋ค.
'ํ๋ก๊ทธ๋๋จธ์ค-Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ - ํ๋ก๊ทธ๋๋จธ์ค(Swift) (0) | 2022.10.04 |
---|---|
ํคํจ๋ ๋๋ฅด๊ธฐ - ํ๋ก๊ทธ๋๋จธ์ค(Swift) (1) | 2022.10.03 |
๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์ - ํ๋ก๊ทธ๋๋จธ์ค(Swift) (0) | 2022.10.02 |
ํ๋ก๊ทธ๋๋จธ์ค - ๋คํธ๊ฒ์(Swift) (0) | 2022.10.01 |
์คํจ์จ - ํ๋ก๊ทธ๋๋จธ์ค(Swift) (1) | 2022.09.30 |