수 조작하기 2 : 문제 링크
정수 배열 numLog가 주어진다. 처음에 numLog[0]에서 부터 시작해 "w","a","s","d"로 이루어진 문자열을 입력으로 받아 순서대로 다음과 같은 조작을 했다고 하자.
- "w" : 수에 1을 더한다.
- "s" : 수에 1을 뺀다.
- "d" : 수에 10을 더한다.
- "a" : 수에 10을 뺀다.
그리고 매번 조작을 할 때마다 결괏값을 기록한 정수 배열이 numLog이다. 즉, numLog[i]는 numLog[0]로부터 총 i번의 조작을 가한 결과가 저장되어 있다. 주어진 정수 배열 numLog에 대해 조작을 위해 입력받은 문자열을 return
조작을 위해 입력받을 문자열 answer를 초기화. for loop는 index 1부터 마지막 위치까지 순환. 정수 배열 numLog[i] 위치에서 numLog[i - 1]를 뺀 값은 결국 조작값이므로, if ~ else if문을 통해 해당값이 1,-1,10,-10일 때 answer에 문자 "w","a","s","d"를 각각 저장. 최종적으로 저장된 answer을 return
#include <string>
#include <vector>
using namespace std;
string solution(vector<int> numLog) {
string answer = "";
for(int i = 1; i < numLog.size(); ++i) {
if(numLog[i] - numLog[i - 1] == 1) answer += 'w';
else if(numLog[i] - numLog[i - 1] == -1) answer += 's';
else if(numLog[i] - numLog[i - 1] == 10) answer += 'd';
else if(numLog[i] - numLog[i - 1] == -10) answer += 'a';
}
return answer;
}