์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- ์๊ณ ๋ฆฌ์ฆ
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
- ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
- ๋นํธ์ฐ์ฐ์
- BFS
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ฌธ์์ด
- Swift
- ์ด์งํ์
- dfs
- ์คํ
- WebApp
- ๋ถํ ์ ๋ณต
- ๋ถํ ํ์
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ์ฝํ
- ios
- ๋ฐฑ์ค
- dp
- ๋์ ํฉ
- ์์
- ๋ฐฑํธ๋ํน
- ๋ธ๋ฃจํธํฌ์ค
- SwiftUI
- WebView
- ์ฝ๋ฉํ ์คํธ
- ๋ถํ ์ ๋ณต
- Queue
- Today
- Total
MUKER_DEV with iOS
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ์ฒด์ก๋ณต ๋ณธ๋ฌธ
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๋ฌธ์ ํธ๋ ๋ฐ ์์ด ๋์์ด ๋๋๋ก ๋์ ํ์ด์ ๊ฐ์ ๋ ํ์ด๋ฅผ ์ฌ๋ฆฝ๋๋ค.
๋ํ ํ์ด ํ ๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ๋ณด๊ณ ์ฐธ๊ณ ํ ๋งํ ํ์ด๋ ์ฌ๋ฆฝ๋๋ค.
- ๋ฌธ์ ์ ๋ฐ๋ผ ๋์ ํ์ด๋ง ์์ ์ ์์ต๋๋ค.
- ํด๋น ํ์ด๋ค์ ํ์ด ์ค ํ๋์ผ ๋ฟ ์ต์ ์ ํ์ด๋ ์๋ ์ ์์ต๋๋ค.
๋ฌธ์ ์ค๋ช
- lost๋ฐฐ์ด์๋ ์ฒด์ก๋ณต์ ๊ฐ์ ธ์ค์ง ๋ชปํ ํ์์ด, reserve๋ฐฐ์ด์๋ ์ฌ๋ถ์ ์ฒด์ก๋ณต์ ๊ฐ์ ธ์จ ํ์์ด ์ ๋ ฅ๋ฉ๋๋ค.
- ์ฌ๋ถ์ ์ฒด์ก๋ณต์ ๊ฐ์ ธ์จ ํ์์ ๋ณธ์ธ์ ๊ธฐ์ค์ผ๋ก ์, ๋ค ํ์์๊ฒ ์ฒด์ก๋ณต์ ๋น๋ ค ์ค ์ ์์ต๋๋ค.
- lost๋ฐฐ์ด๊ณผ reserve๋ฐฐ์ด ๋ ๋ค ํด๋นํ๋ ํ์๋ ์กด์ฌํ๋ฉฐ, ํด๋น ํ์์ ๋ค๋ฅธ ํ์์๊ฒ ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค.
- ์ฒด์ก๋ณต์ ๋น๋ฆฐ ํ์๊น์ง ํฌํจ ์ฒด์ก๋ณต์ด ์๋ ํ์์ ๊ตฌํฉ๋๋ค.
๋์ ํ์ด
import Foundation
func solution(_ n:Int, _ lost:[Int], _ reserve:[Int]) -> Int {
var lostStudent = lost.sorted()
var reserveStudent = reserve.sorted()
for i in reserveStudent {
if lostStudent.contains(i) {
lostStudent.remove(at: lostStudent.firstIndex(of: i)!)
reserveStudent.remove(at: reserveStudent.firstIndex(of: i)!)
}
}
for i in reserveStudent {
guard !lostStudent.isEmpty else { break }
if lostStudent.contains(i-1) {
lostStudent.remove(at: lostStudent.firstIndex(of: i-1)!)
continue
}
if lostStudent.contains(i+1) {
lostStudent.remove(at: lostStudent.firstIndex(of: i+1)!)
continue
}
}
return n-lostStudent.count
}
lostStudent์๋ ์ฒด์ก๋ณต์ด ์๋ ํ์์ด ์์ต๋๋ค.
์ฒด์ก๋ณต์ ๋น๋ฆฌ๊ฒ ๋๋ค๋ฉด ํด๋น ๋ฐฐ์ด์์ ์ง์ ์ต๋๋ค.
๋ฐ๋ผ์ n(๋ชจ๋ ํ์) - lostStudent.count(์ฒด์ก๋ณต์ ๋น๋ฆฌ์ง ๋ชปํ ํ์ ์)๋ก ๊ฐ์ ๊ตฌํฉ๋๋ค.
์ฒ์ ์ฃผ์ด์ง๋ lost์ reserve๋ฐฐ์ด์ ์ ๋ ฌ์ด ์๋์ด ์๊ธฐ ๋๋ฌธ์
์ ๋ ฌํ์ฌ ๋ณ์์ ๋ด์ต๋๋ค.
lost์ reserve ์ ์ชฝ์ ๋ค ํฌํจ๋๋ ๊ฐ์
๋ ๋ฐฐ์ด ๋ชจ๋์์ ์ญ์ ์์ผ ์ค๋๋ค.
์ฌ๋ถ์ด ์๋ ํ์ ๋ฐฐ์ด์ ์ํํ๋ฉฐ
๋ณธ์ธ ์, ๋ค๋ฅผ ํ์ธํ๋ฉฐ
์ฒด์ก๋ณต์ด ์๋ ํ์์ด ํด๋น๋๋ฉด
ํด๋น ํ์์ lost๋ฐฐ์ด์์ ์ญ์ ๋๋ฉฐ
๋ค์ ๋ฐ๋ณต์ผ๋ก ๋๊ฒจ์ค๋๋ค.
์ฐธ๊ณ ํ ๋งํ ํ์ด
import Foundation
func solution(_ n: Int, _ lost: [Int], _ reserve: [Int]) -> Int {
let newReserve = reserve.filter { !lost.contains($0) }
let newLost = lost.filter { !reserve.contains($0) }
var lostPeople: Int = newLost.count
newReserve.forEach {
let isLend: Bool = newLost.contains($0 - 1) || newLost.contains($0 + 1)
if isLend && lostPeople > 0 {
lostPeople -= 1
}
}
return n - lostPeople
}
ํด๋น ํ์ด๋ฅผ ๋ณด๋ฉด
ํ์ด ๋ฐฉ์์ ๋น์ทํ์ง๋ง
๊ตณ์ด ๋ฐฐ์ด์ ๊ฐ์ ์ง์๊ฐ๋ฉฐ ๋ฌธ์ ๋ฅผ ํ ํ์๊ฐ ์์์ต๋๋ค.
๋ฐฐ์ด์ count๊ฐ์ผ๋ก ์ฒด์ก๋ณต์ด ์๋ ํ์ ์๋ฅผ ํ์ ํด
์ฒด์ก๋ณต์ ๋น๋ฆฌ๋ฉด -1์ฉ ํ์ฌ
์ฒด์ก๋ณต์ ๋น๋ฆฌ์ง ๋ชปํ ํ์์ ํ์ ํ ์ ์์์ต๋๋ค.
๋ํ ์ ๋ ฌ์ ํ ํ์๊ฐ ์์ด์ ์๊ฐ๋ฉด์์๋ ํจ์จ์ ์ ๋๋ค.
'๐ค ์๊ณ ๋ฆฌ์ฆ > programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ (0) | 2023.02.10 |
---|---|
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ์ซ์ ์ง๊ฟ (0) | 2023.02.09 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ๋ช ์์ ์ ๋น (1) (0) | 2023.02.06 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ฒ๊ฑฐ ๋ง๋ค๊ธฐ (0) | 2023.02.03 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ๋ฌธ์์ด ๋๋๊ธฐ (0) | 2023.02.02 |