์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
Tags
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
- ios
- ๋ฐฑํธ๋ํน
- ์ฝํ
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ๋ฐฑ์ค
- ๋ธ๋ฃจํธํฌ์ค
- ๋ฌธ์์ด
- ์ด์งํ์
- ์ฝ๋ฉํ ์คํธ
- ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
- BFS
- ์๊ณ ๋ฆฌ์ฆ
- ์์
- Queue
- ๋ถํ ์ ๋ณต
- WebApp
- WebView
- ๋ถํ ํ์
- dp
- Swift
- ๋ถํ ์ ๋ณต
- ํ๋ก๊ทธ๋๋จธ์ค
- SwiftUI
- ๋นํธ์ฐ์ฐ์
- dfs
- ์คํ
- ๋์ ํฉ
Archives
- Today
- Total
MUKER_DEV with iOS
[swift] ํ๋ก๊ทธ๋๋จธ์ค - [์นด์นด์ค ์ธํด] ์์ ์ต๋ํ ๋ณธ๋ฌธ
๐ค ์๊ณ ๋ฆฌ์ฆ/programmers
[swift] ํ๋ก๊ทธ๋๋จธ์ค - [์นด์นด์ค ์ธํด] ์์ ์ต๋ํ
MUKER 2023. 5. 29. 21:22
์ฑ๊ณต ํ์ด
func solution(_ expression:String) -> Int64 {
var arr = [String]()
let order = [
["*","+","-"],["*","-","+"],
["+","*","-"],["+","-","*"],
["-","*","+"],["-","+","*"]
]
var result = 0
// ์ซ์์ ์ฐ์ฐ์ ์กฐ๊ฐ ๋ด๊ธฐ
var temp = ""
for i in expression {
if !i.isNumber {
arr.append(temp)
temp.removeAll()
arr.append(String(i))
} else {
temp.append(i)
}
}
arr.append(temp)
// ์ฐ์ ์์ ๋ณ๋ก ์ฐ์ฐํ๊ธฐ
for i in 0..<order.count {
var num = arr
var tempNum = num
for j in 0..<3 {
for k in 0..<num.count {
// ํด๋น ์ฐ์ฐ์์ผ ๋
if num[k]==order[i][j] {
if order[i][j] == "*" {
num[k+1] = String(Int(num[k-1])! * Int(num[k+1])!)
tempNum[k+1] = num[k+1]
tempNum[k-1] = ""
tempNum[k] = ""
} else if order[i][j] == "+" {
num[k+1] = String(Int(num[k-1])! + Int(num[k+1])!)
tempNum[k+1] = num[k+1]
tempNum[k-1] = ""
tempNum[k] = ""
} else if order[i][j] == "-" {
num[k+1] = String(Int(num[k-1])! + (-Int(num[k+1])!))
tempNum[k+1] = num[k+1]
tempNum[k-1] = ""
tempNum[k] = ""
}
}
}
num = tempNum.filter { !$0.isEmpty }
tempNum = num
}
result = max(result, abs(Int(num[0])!))
}
return Int64(result)
}
ํ์ด ํค์๋
- ์ฃผ์ด์ง expression๋ฌธ์์ด์ ์ซ์์ ์ฐ์ฐ์๋ก ๋์ค arr๋ฐฐ์ด์ ๋ด์ต๋๋ค.
ex) ["100","*","200","+","500"]
- order๋ฐฐ์ด์ ์ฐ์ฐ์์ 6๊ฐ์ง ๊ฒฝ์ฐ์ ์๋ฅผ ๋ด์ต๋๋ค.
- ๋ง๋ค์ด ๋์ arr๋ฐฐ์ด์ ์ต์๋จ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋๊ณ ๋ฌธ์๊ฐ ํ๋์ฉ ๋์ฌ ๋
6๊ฐ์ง์ ๊ฒฝ์ฐ์ ์๋ฅผ ์ฐจ๋ก๋ก ๋ฐ๋ณต ์ํต๋๋ค.
๊ฒฝ์ฐ์ ์๊ฐ *,+,- ์์๋ก ๋์ด ์๋ค๋ฉด arr๋ฌธ์์ด์ ๋๋ฉฐ * ์ฐ์ฐ์๊ฐ ๋์์ ๋
* ์ ์ ๋ค ์ซ์๋ฅผ ๊ณฑํ๊ณ , ๋ค ์ซ์ ์ธ๋ฑ์ค์ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ๊ฐ์ ๋ฐ๊ฟ์ค๋๋ค.
๊ทธ ํ ์ ์ซ์์ * ์ฐ์ฐ์๊ฐ ์๋ ์๋ฆฌ์ ์ธ๋ฑ์ค ๊ฐ์ ""๋ก ๋ฐ๊ฟ์ค๋๋ค.
- * ์ฐ์ฐ์์ ๊ณ์ฐ์ด ๋ค ๋๋ฌ๋ค๋ฉด + ์ฐ์ฐ์ ๊ทธ ํ - ์ฐ์ฐ์๋ฅผ ์คํ์ํค๊ฒ ๋๊ณ
๋น ๋ฌธ์์ด์ ๋ชจ๋ ์ง์ฐ๋ฉด ๋๋จธ์ง ๊ฐ ์ฆ ์ฒซ ๋ฒ์งธ ๊ฒฝ์ฐ์ ์๋ก ๊ตฌํ ๊ฒฐ๊ณผ๊ฐ์ด ๋์ค๊ฒ ๋ฉ๋๋ค.
- ์ด๋ ๊ฒ 6๊ฐ์ง ๊ฒฝ์ฐ์ ์, 6๋ฒ ๋ฐ๋ณตํด์ ์ต๋๊ฐ์ ๋ฝ์๋ด๋ฉด ๋ฌธ์ ๊ฐ ์ํ๋ ๋ต์ ๊ตฌํ ์ ์์ต๋๋ค.
'๐ค ์๊ณ ๋ฆฌ์ฆ > programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[swift] ๋ฐฑ์ค - 2161๋ฒ: ์นด๋1 (0) | 2023.06.13 |
---|---|
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ์ฃผ์ฌ์ ๊ฒ์ 3 (0) | 2023.06.07 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ๋ฌธ์์ด ์์ถ (0) | 2023.05.25 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ๋ ํ ํฉ ๊ฐ๊ฒ ๋ง๋ค๊ธฐ (1) | 2023.05.24 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ์ฃผ์ฌ์ ๊ฒ์ 1 (0) | 2023.05.22 |