๋ฐ์ํ
ํ๋ก๊ทธ๋๋จธ์ค LV.0 ๋ชจ์
๋ฌธ์์ด ๊ณ์ฐํ๊ธฐ
๋ฌธ์ ์ค๋ช
my_string์ "3 + 5"์ฒ๋ผ ๋ฌธ์์ด๋ก ๋ ์์์ ๋๋ค. ๋ฌธ์์ด my_string์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์์์ ๊ณ์ฐํ ๊ฐ์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
์ ํ ์ฌํญ
- ์ฐ์ฐ์๋ +, -๋ง ์กด์ฌํฉ๋๋ค.
- ๋ฌธ์์ด์ ์์๊ณผ ๋์๋ ๊ณต๋ฐฑ์ด ์์ต๋๋ค.
- 0์ผ๋ก ์์ํ๋ ์ซ์๋ ์ฃผ์ด์ง์ง ์์ต๋๋ค.
- ์๋ชป๋ ์์์ ์ฃผ์ด์ง์ง ์์ต๋๋ค.
- 5 ≤ my_string์ ๊ธธ์ด ≤ 100
- my_string์ ๊ณ์ฐํ ๊ฒฐ๊ด๊ฐ์ 1 ์ด์ 100,000 ์ดํ์
๋๋ค.
- my_string์ ์ค๊ฐ ๊ณ์ฐ ๊ฐ์ -100,000 ์ด์ 100,000 ์ดํ์ ๋๋ค.
- ๊ณ์ฐ์ ์ฌ์ฉํ๋ ์ซ์๋ 1 ์ด์ 20,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
- my_string์๋ ์ฐ์ฐ์๊ฐ ์ ์ด๋ ํ๋ ํฌํจ๋์ด ์์ต๋๋ค.
- return type ์ ์ ์ํ์ ๋๋ค.
- my_string์ ์ซ์์ ์ฐ์ฐ์๋ ๊ณต๋ฐฑ ํ๋๋ก ๊ตฌ๋ถ๋์ด ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
my_string | result |
"3 + 4" | 7 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- 3 + 4 = 7์ return ํฉ๋๋ค.
์ ์ถ
import Foundation
func solution(_ my_string:String) -> Int {
var string_value = my_string.split(separator: " ").map{String($0)}
var answer = Int(string_value[0])!
for index in stride(from: 1, to: string_value.count, by: 2) {
if string_value[index] == "+"{
answer += Int(string_value[index+1])!
}else{
answer -= Int(string_value[index+1])!
}
}
return answer
}
์ ๋ ฅ๋ฐ์ ๋ฌธ์์ด์ ๊ณต๋ฐฑ ๊ธฐ์ค์ผ๋ก ๋๋ String ๋ฐฐ์ด๋ก ์ ์ฅํ๋ค.
answer์ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ๊ฐ์ Int๋ก ๋ณํํด ๋ฃ์ด์ค๋ค.
for๋ฌธ์ ์ฌ์ฉํด index๋ฅผ 1๋ถํฐ ๋ฐฐ์ด์ ํฌ๊ธฐ๊น์ง 2์ฉ ์ฆ๊ฐ์ํค๋ฉฐ ๋ฐ๋ณตํ๋ค. (์ซ์, ์ฐ์ฐ์, ์ซ์ ์์๋ก ๋ฐ๋ณต๋๊ธฐ ๋๋ฌธ)
์ฐ์ฐ์๊ฐ + ๋ผ๋ฉด ๋ค์ ์ธ๋ฑ์ค์ ์ซ์์ ๋ง์ ์, ์๋๋ผ๋ฉด ๋บ์ ์ ํ๋ค.
๋ค๋ฅธ ํ์ด
import Foundation
func solution(_ my_string: String) -> Int {
return my_string.replacingOccurrences(of: "- ", with: "-")
.replacingOccurrences(of: "+", with: "")
.split(separator: " ")
.map { Int($0)! }
.reduce(0, +)
}
replacingOccurrences()์ ์ด์ฉํด "- "๋ "-"๋ก, "+"๋ ์ง์์ค๋ค. (ex. 5 + 2 - 3 => 5 2 -3)
์ดํ ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ๋๋ ํ map ํจ์๋ฅผ ์ฌ์ฉํด Intํ ๋ฐฐ์ด๋ก ๋ง๋ ๋ค.
reduce ํจ์๋ฅผ ์ฌ์ฉํด ๋ฐฐ์ด์ ๋ํด์ค๋ค.
๋ฐ์ํ
'โจ๏ธ Language > swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค LV.0] ์ซ์ ์ฐพ๊ธฐ (0) | 2023.01.13 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค LV.0] ๋ฐฐ์ด์ ์ ์ฌ๋ (0) | 2023.01.13 |
[ํ๋ก๊ทธ๋๋จธ์ค LV.0] ๊ฐ์ฅ ํฐ ์ ์ฐพ๊ธฐ (0) | 2023.01.12 |
[ํ๋ก๊ทธ๋๋จธ์ค LV.0] ํธ์ง (0) | 2023.01.11 |
[ํ๋ก๊ทธ๋๋จธ์ค LV.0] ์ฝ์ ๊ตฌํ๊ธฐ (0) | 2023.01.11 |