728x90
- 관련 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/120907
입력된 수식이 맞는 수식이면 "O", 아니라면 "X"를 표출해주는 문제이다.
1) 입력받은 문자열을 공백(" ")을 기준으로 split
2) 나눠진 문자열의 두번째 항목(index == 1)이 "+" 인 경우, "-" 인 경우에 따라 각각 값 계산
3) 계산된 결과값이 입력받은 결과값과 일치하는지 확인
#include <string>
#include <vector>
#include <sstream>
using namespace std;
vector<string> split(string s, char check) {
vector<string> vec_strings;
stringstream ss(s);
string temp;
while (getline(ss, temp, check)) {
vec_strings.push_back(temp);
}
return vec_strings;
}
vector<string> solution(vector<string> quiz) {
vector<string> answer;
for (string str : quiz)
{
vector<string> q = split(str, ' ');
int a = stoi(q[0]);
int b = stoi(q[2]);
int result = stoi(q[4]);
if (q[1] == "+")
answer.push_back((a + b == result) ? "O" : "X");
else
answer.push_back((a - b == result) ? "O" : "X");
}
return answer;
}
아래의 경우, 굳이 vector에 저장하지 않고 바로 입력받아 확인해주는 방법도 있다.
#include <string>
#include <vector>
#include <sstream>
using namespace std;
vector<string> solution(vector<string> quiz) {
vector<string> answer;
for (string str : quiz)
{
stringstream ss(str);
string a, b, oper, equal, result;
ss >> a >> oper >> b >> equal >> result;
if (oper == "+")
answer.push_back((stoi(a) + stoi(b) == stoi(result)) ? "O" : "X");
else
answer.push_back((stoi(a) - stoi(b) == stoi(result)) ? "O" : "X");
}
return answer;
}
728x90
'Algorithm > Programers' 카테고리의 다른 글
숨어있는 숫자의 덧셈 (2) (0) | 2023.06.18 |
---|---|
숨어있는 숫자의 덧셈 (1) (0) | 2023.06.18 |
컨트롤 제트 (0) | 2023.06.15 |
N개의 최소공배수 (0) | 2023.06.12 |
배열 회전시키기 (0) | 2023.06.08 |
댓글