본문 바로가기
코딩테스트 준비/프로그래머스

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

by 스테디코디스트 2023. 10. 24.
반응형

<문제 소개>


<소스 코드>

#include <string>
#include <vector>

using namespace std;

string solution(vector<int> numLog) 
{
    string answer = "";    
    
    for(int i = 1; i < numLog.size(); i++)
    {        
        int curDiff = numLog[i] - numLog[i - 1];
        
        if(curDiff == 1)
        {
            answer += "w";
        }
        else if(curDiff == -1)
        {
            answer += "s";
        }
        else if(curDiff == 10)
        {
            answer += "d";
        }
        else if(curDiff == -10)
        {
            answer += "a";
        }
    }
    
    return answer;
}

<풀이과정>

1. numLog의 원소들의 각 차이를 이용하여 어떤 조작이 있었는지 알 수 있으므로 for문을 돌면서 각 원소들의 차이를 구하여 조작을 판단한다.

2. 0번 인덱스는 이전 인덱스가 없으므로 넘어가고 1번 인덱스부터 반복을 시작한다.

3. 현재의 차이값을 curDiff라고 선언하고, 각 반복에서의 차이값 numLog[i] - numLog[i-1]을 넣어준다.

4. curDiff가 1이라면 차이가 1인 것이므로 현재 값에서 'w' 버튼을 눌러 1을 더한 것이다.

5. 마찬가지 방식으로 -1일때는 's', 10일때는 'd', -10일때는 'a' 버튼을 눌렀음을 알 수있으므로 if문을 이용해 조건을 나누어 answer에 각 조건에 맞게 조작값을 넣어준다.

6. for문이 모두 끝난 뒤 answer을 리턴한다.


<코멘트>

어렵지 않게 풀 수 있었다.


<제출결과>