N

(SWEA c++)1289. 원재의 메모리 복구하기 본문

SW Expert Academy

(SWEA c++)1289. 원재의 메모리 복구하기

naeunchan 2020. 10. 15. 11:31
728x90
반응형

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV19AcoKI9sCFAZN&categoryId=AV19AcoKI9sCFAZN&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

처음 초기값 0을 나타내는 int형 배열 original을 이용하여 비교하도록 한다.

원래값을 받아오는 string형 bit 변수에 저장.

for문을 이용하여 orginal과 bit를 비교한다.

만약 비교하는 위치의 값이 서로 다르다면 original의 현재 위치에서 끝까지 bit[j]의 값으로 바꿔주도록 한다.(1 또는 0)

bit.size()만큼 original을 돌면 횟수를 구할 수 있다.

#include <iostream>

using namespace std;

int main(void)
{
    int t;
    cin >> t;
    
    for(int i = 1; i <= t; i++)
    {
        int ans = 0;
        string bit;
        int original[50] = {0, };
        cin >> bit;
        
        for(int j = 0; j < bit.size(); j++)
        {
            string change;
            
            if(stoi(bit.substr(j, 1)) == original[j])
                continue;
            change = bit[j];
            
            for(int k = j; k < bit.size(); k++)
            	original[k] = stoi(change);
            ans++;
        }
        cout << "#" << i << " " << ans << endl;
    }
    return 0;
}
728x90
반응형