[프로그래머스 / C++] 수 조작하기 2

YH·2023년 11월 15일
0

문제

수 조작하기 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;
}
profile
Keep Recycling Your Dreams

0개의 댓글