์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ์คํ
- dp
- ๋ฌธ์์ด
- ๋ถํ ์ ๋ณต
- BFS
- Swift
- ์ฝ๋ฉํ ์คํธ
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
- ํ๋ก๊ทธ๋๋จธ์ค
- Queue
- ๋ฐฑ์ค
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ๋์ ํฉ
- ios
- ๋นํธ์ฐ์ฐ์
- ์ด์งํ์
- dfs
- ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
- ์์
- ๋ถํ ํ์
- SwiftUI
- ์ฝํ
- WebView
- WebApp
- ๋ธ๋ฃจํธํฌ์ค
- ๋ถํ ์ ๋ณต
- ์๊ณ ๋ฆฌ์ฆ
- ๋ฐฑํธ๋ํน
- Today
- Total
MUKER_DEV with iOS
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ฒ๊ฑฐ ๋ง๋ค๊ธฐ ๋ณธ๋ฌธ
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ฒ๊ฑฐ ๋ง๋ค๊ธฐ
MUKER 2023. 2. 3. 17:03ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๋ฌธ์ ํธ๋ ๋ฐ ์์ด ๋์์ด ๋๋๋ก ๋์ ํ์ด์ ๊ฐ์ ๋ ํ์ด๋ฅผ ์ฌ๋ฆฝ๋๋ค.
๋ํ ํ์ด ํ ๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ๋ณด๊ณ ์ฐธ๊ณ ํ ๋งํ ํ์ด๋ ์ฌ๋ฆฝ๋๋ค.
- ๋ฌธ์ ์ ๋ฐ๋ผ ๋์ ํ์ด๋ง ์์ ์ ์์ต๋๋ค.
- ํด๋น ํ์ด๋ค์ ํ์ด ์ค ํ๋์ผ ๋ฟ ์ต์ ์ ํ์ด๋ ์๋ ์ ์์ต๋๋ค.
๋ฌธ์ ์ค๋ช
ํ๋ฒ๊ฑฐ ์ฌ๋ฃ ๋ฐฐ์ด์ด ์ฃผ์ด์ง๋๋ค.
๋ฐฐ์ด ์ค ์ฐ์์ ์ผ๋ก [๋นต, ์ผ์ฑ, ๊ณ ๊ธฐ, ๋นต]์ด ๋์จ๋ค๋ฉด
ํ๋ฒ๊ฑฐ๊ฐ ๋ ์ ์์ต๋๋ค.
1: ๋นต, 2: ์ผ์ฑ, 3: ๊ณ ๊ธฐ์ ๋๋ค.
[2, 1, 1, 2, 3, 1, 2, 3, 1]์ ๋ฐฐ์ด์ด ์ฃผ์ด์ง ๋
3๋ฒ์งธ ์ธ๋ฑ์ค๋ถํฐ [1,2,3,1]์ด ๋๊ธฐ ๋๋ฌธ์ ํ๋ฒ๊ฑฐ๊ฐ ๋ง๋ค์ด์ง๋ฉฐ
ํด๋น ๋ฒ์๋ฅผ ์ง์ฐ๊ฒ ๋๋ค๋ฉด [2,1,2,3,1]์ด ๋จ์ต๋๋ค.
๋ค์ ๋จ์ ๋ฐฐ์ด์์ 2๋ฒ์งธ ์ธ๋ฑ์ค๋ถํฐ
ํ๋ฒ๊ฑฐ๋ฅผ ๋ง๋ค ์ ์๋ [1,2,3,1]์ด ๋ง๋ค์ด์ ธ์
2๊ฐ์ ํ๋ฒ๊ฑฐ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
๋์ ํ์ด
import Foundation
func solution(_ ingredient:[Int]) -> Int {
var burger = ingredient
var count = 0
var start = 0
while burger.count >= 4 {
let temp = count
for i in start..<burger.count-3 {
if burger[i...i+3] == [1,2,3,1] {
burger[i...i+3] = []
count += 1
if burger.count <= 6 { break }
start = i-2
break
}
}
if temp == count { break }
}
return count
}
์ ๋ 4๊ฐ์ ๊ณต๊ฐ์ ๊ฐ์ง ๋ฐฐ์ด์ ๋ง๋ค์ด
burger์ฌ๋ฃ๋ฅผ ์ฒ์๋ถํฐ ๋๊น์ง [1,2,3,1]์ ํด๋นํ๋์ง ํ์ํ์ต๋๋ค.
๋ง์ฝ [1,2,3,1]์ ํด๋น๋๋ฉด, ํด๋น ์ธ๋ฑ์ค๋ ์ง์์ฃผ๊ณ count += 1์ ํ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฒ์๋ถํฐ ๋ค์ [1,2,3,1]์ ํ์ํ์ต๋๋ค.
ํ์ง๋ง ํด๋น ์กฐ๊ฑด๋ง์ผ๋ก๋
์๊ฐ์ ํ์ ๊ฑธ๋ ค ํต๊ณผํ์ง ๋ชปํ์ต๋๋ค.
๊ทธ๋์ ํ๋ฒ๊ฑฐ ๋ฐฐ์ด์ ๋บ ํ
์ฒ์๋ถํฐ ๋ค์ ํ์ํ์ง ์๊ณ
๋น ์ง index์์ 2์นธ๋ง ๋ค๋ก ๊ฐ ๋ค์ ํ์ํ์ต๋๋ค.
์ต์ 2์นธ์ ๋ค๋ก๊ฐ์ผ ์๋ฒฝํ๊ฒ ๋ค์ ํ๋ฒ๊ฑฐ๋ฅผ ์ฐพ์ ์ ์์์ต๋๋ค.
์ธ๋ฑ์ค๊ฐ ์์๋ก ๋์ค๋๊ฑธ ๋ฐฉ์งํ๊ธฐ ์ํด
burger์ ์นด์ดํธ๊ฐ 6๋ณด๋ค ์์ ๋๋
์ธ๋ฑ์ค๋ฅผ ๋ค๋ก๋ณด๋ด ํ์ํ์ง ์์์ต๋๋ค.
(๋ง์ฝ 5์ count๋ฅผ ๊ฐ์ง๊ณ ์์ ๋
burger[1... 4]๋ฅผ ๊ฒ์ฌํ๊ณ start๊ฐ์ธ 1์ -2๋ฅผ ํ๋ฉด ์์๊ฐ ๋์ ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค)
๋ฏธ๋ฆฌ count๊ฐ์ ๋ณต์ฌํด ๋์ temp๊ฐ์ด
burger๋ฐฐ์ด์ ํ์ํ๊ณ ๋ ๊ฐ๋ค๋ฉด
๋ ์ด์ ํ๋ฒ๊ฑฐ๋ฅผ ๋ง๋ค ์ ์๋ ๋ฐฐ์ด์ด ์๋ค๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์
while๋ฌธ์ ๋์ต๋๋ค.
์ฐธ๊ณ ํ ๋งํ ํ์ด
import Foundation
func solution(_ ingredient:[Int]) -> Int {
var stacks: [Int] = []
var count: Int = 0
for ingredient in ingredient {
stacks.append(ingredient)
let suffix = stacks.suffix(4)
if suffix == [1,2,3,1] {
count += 1
stacks.removeLast(4)
}
}
return count
}
.suffix(4)๋
๋ค์์๋ถํฐ 4๊ฐ์ ์ธ๋ฑ์ค๋ฅผ ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค.
suffix() ํจ์๋ฅผ ์ผ์ ๋ ์ข์ ์ ์ด
๋ฐฐ์ด์ 2๊ฐ์ ๊ฐ ๋ฐ์ ์๋ค ํด๋
suffix(4)๋ ์๋ฌ๊ฐ ๋์ง ์๊ณ
2๊ฐ์ ๊ฐ๋ง ๊ฐ์ ธ์ต๋๋ค.
๋ฐ๋ผ์ ์ธ๋ฑ์ค๋ฅผ ํ์ฉํ์ ๋๋
์๋ฌ๋ฅผ ์ฒ๋ฆฌํด์ผ ํ๋ ์กฐ๊ฑด์ด ํ์ํ๋๋ฐ
suffix()๋ฅผ ์ฐ๋ฉด ๋ถํ์ํ๊ธฐ ๋๋ฌธ์ ๋ ๊น๋ํ ์ฝ๋๋ฅผ ๋ง๋ค ์ ์์ด ๋ณด์ ๋๋ค.
'๐ค ์๊ณ ๋ฆฌ์ฆ > programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ์ฒด์ก๋ณต (0) | 2023.02.07 |
---|---|
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ๋ช ์์ ์ ๋น (1) (0) | 2023.02.06 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ๋ฌธ์์ด ๋๋๊ธฐ (0) | 2023.02.02 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌํ๊ธฐ (2) | 2023.02.01 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ๊ณผ์ผ ์ฅ์ (0) | 2023.01.31 |