| 문제 설명 ❓
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 합니다.
| 풀이 🔥
⚠️ 한 번씩 읽어주세요 ⚠️
제 개인의 풀이 방법이며 틀린 풀이 방법 일수도, 더 나은 풀이법이 존재할 수도 있습니다!
전체 코드는 깃헙 링크 혹은 하단 접은 글을 펼쳐 확인가능하며, 복붙이 아닌 참고용 코드입니다
이전에 풀이했던 Lv.0 OX퀴즈 와 유사한 문제인 거 같습니다. 여러 방법이 있겠지만 저는 OX퀴즈 문제와 같이 공백을 기준으로 문자열을 Split 하여 풀이를 해보았습니다.
차이점은 OX 퀴즈처럼 A + B = C의 형식이 정해져 있는 것이 아닌 A + B + C +... =?? 의 형식으로 문자열이 주어지기 때문에 이에 맞는 코드 작성이 필요합니다.
[깃헙 / Github]
😻 댓글과 공감 한 번씩 감사드립니다 😻
| 전체 코드 🔎
더보기
using System;
public class Solution {
public int solution(string my_string) {
int answer = 0;
// 공백을 기준으로 문자열을 나눈다
string[] splitStr = my_string.Split(' ');
// 더해지는 변수에 splitStr 0번째 값을 대입
answer = int.Parse(splitStr[0]);
// splitStr 길이만큼 반복
for(int i = 0 ; i < splitStr.Length; i++)
{
// 현재 splitStr의 i번째가 +일때 혹은 -일때 체크
if (splitStr[i] == "+")
{
// 현재 더해진 값에 i+1번째 값을 더한다
answer += int.Parse(splitStr[i + 1]);
}
else if(splitStr[i] == "-")
{
// 현재 더해진 값에 i+1번째 값을 뺀다
answer -= int.Parse(splitStr[i + 1]);
}
}
return answer;
}
}