[์ค์ํํธ ์๊ณ ๋ฆฌ์ฆ] ํ๋ก๊ทธ๋๋จธ์ค: ํฐ ์ ๋ง๋ค๊ธฐ
๋ฌธ์
์ด๋ค ์ซ์์์ k๊ฐ์ ์๋ฅผ ์ ๊ฑฐํ์ ๋ ์ป์ ์ ์๋ ๊ฐ์ฅ ํฐ ์ซ์๋ฅผ ๊ตฌํ๋ ค ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์ซ์ 1924์์ ์ ๋ ๊ฐ๋ฅผ ์ ๊ฑฐํ๋ฉด [19, 12, 14, 92, 94, 24] ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์ด ์ค ๊ฐ์ฅ ํฐ ์ซ์๋ 94 ์ ๋๋ค.
๋ฌธ์์ด ํ์์ผ๋ก ์ซ์ number์ ์ ๊ฑฐํ ์์ ๊ฐ์ k๊ฐ solution ํจ์์ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. number์์ k ๊ฐ์ ์๋ฅผ ์ ๊ฑฐํ์ ๋ ๋ง๋ค ์ ์๋ ์ ์ค ๊ฐ์ฅ ํฐ ์ซ์๋ฅผ ๋ฌธ์์ด ํํ๋ก return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ ์กฐ๊ฑด
- number๋ 1์๋ฆฌ ์ด์, 1,000,000์๋ฆฌ ์ดํ์ธ ์ซ์์ ๋๋ค.
- k๋ 1 ์ด์ number์ ์๋ฆฟ์ ๋ฏธ๋ง์ธ ์์ฐ์์ ๋๋ค.
ํ์ด
๊ทธ๋ฆฌ๋ํ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค. ์์์๋ถํฐ ์์ ์ซ์๋ฅผ ์ฃผ์ด์ง ๊ฐ์๋งํผ ์ง์์ฃผ๋ฉด ๋จ์ ์ซ์๋ค์ ํฉ์ณ ๊ฐ์ฅ ํฐ ์ซ์๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์ด๋ฅผ ์ํด์ ์คํ์ ๋ง๋ค์ด์ ์คํ์ ๊ฐ์ฅ ์์ ์๋ ๊ฐ๋ณด๋ค ํฐ ๊ฒฝ์ฐ์๋ง ์ง์ด๋ฃ๊ณ ์ง์ธ ์ ์๋ ์ซ์์ ๊ฐ์๊ฐ ๋ ๋จ์๋ค๋ฉด ๊ทธ ๋ค์ ์ซ์๋ถํฐ ๊ฐ์ ์์ ์ ๋ฐ๋ณตํ๋๋ก ๊ตฌํํ์ต๋๋ค.
์ฝ๋
import Foundation
func solution(_ number:String, _ k:Int) -> String {
var nums = Array(number)
var stack : [Character] = []
var eraseCount = 0
while !nums.isEmpty && eraseCount != k {
if !stack.isEmpty && !nums.isEmpty && nums.first! > stack.last! {
while !stack.isEmpty && nums.first! > stack.last! {
stack.popLast()
eraseCount += 1
if eraseCount == k {
break
}
}
stack.append(nums.removeFirst())
} else {
stack.append(nums.removeFirst())
}
}
while !nums.isEmpty {
stack.append(nums.removeFirst())
}
while eraseCount != k {
stack.popLast()
eraseCount += 1
}
return String(stack)
}
'๐๐ปโโ๏ธ ํผ-์์ค > ๐ฃ ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ค์ํํธ ์๊ณ ๋ฆฌ์ฆ] ํ๋ก๊ทธ๋๋จธ์ค: ์์ด ๋๋ง์๊ธฐ (0) | 2021.08.16 |
---|---|
[์ค์ํํธ ์๊ณ ๋ฆฌ์ฆ] ํ๋ก๊ทธ๋๋จธ์ค: H-Index (0) | 2021.08.16 |
[์ค์ํํธ ์๊ณ ๋ฆฌ์ฆ] ํ๋ก๊ทธ๋๋จธ์ค: ์คํ์ฑํ ๋ฐฉ (0) | 2021.07.31 |
[์ค์ํํธ ์๊ณ ๋ฆฌ์ฆ] ํ๋ก๊ทธ๋๋จธ์ค: ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ (0) | 2021.07.31 |
[์ค์ํํธ ์๊ณ ๋ฆฌ์ฆ] ํ๋ก๊ทธ๋๋จธ์ค: ํ๊ฒ ๋๋ฒ (0) | 2021.07.31 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote