문제 대충 보고 뭐야 쉽잖아?하고 연산자 하나라고 생각하고 풀었다가 틀림;;
"my_string"에는 연산자가 적어도 하나 포함되어 있습니다."
Aㅏㅎㅏ
나의 풀이
import Foundation
func solution(_ my_string:String) -> Int {
let array = my_string.split(separator: " ")
var result = 0
var x = 1
for element in array {
if element == "+" {
x = 1
} else if element == "-" {
x = -1
} else {
result += Int(element)! * x
}
}
return result
}
- 공백을 구분자로 나눠서 배열에 저장
- 배열을 반복문을 돌려서 요소가 연산자일 경우, 변수 x에 양수/음수 처리
- 연산자가 아닐 경우엔 결과값에 앞단엔 처리한 양수/음수 곱한 후 정수로 변환해서 더해줌
다른 사람의 풀이
import Foundation
func solution(_ my_string:String) -> Int {
my_string
.replacingOccurrences(of: " - ", with: " + -")
.components(separatedBy: " + ")
.reduce(0, { $0 + Int($1)! })
}
- 마이너스 연산자 앞에 " + " 연산자를 추가해 준뒤 " + " 구분자로 나눔으로써 따로 음수처리 없이 더해주기만 하면 끝!
더보기



테스트 케이스 예
입력 "4 - 1 + 20 - 7"
출력 16
print(my_string
.replacingOccurrences(of: " - ", with: " + -"))
- " - " ➡️ " + - " 문자열 대체

print(my_string
.replacingOccurrences(of: " - ", with: " + -")
.components(separatedBy: " + "))
- " + " 구분자로 나눠서 저장

print(my_string
.replacingOccurrences(of: " - ", with: " + -")
.components(separatedBy: " + ")
.reduce(0, { $0 + Int($1)! }))
- 정수로 변환해서 더해주기!

'개인 공부 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] OX퀴즈 swift (0) | 2024.06.17 |
---|---|
[프로그래머스] 영어가 싫어요 swift (0) | 2024.06.14 |
[프로그래머스] 한 번만 등장한 문자 swift (0) | 2024.06.14 |
[프로그래머스] 이진수 더하기 swift (1) | 2024.06.12 |
[프로그래머스] A로 B 만들기 swift (0) | 2024.06.12 |