Algorihtm/SWEA

C++ SWEA 1289. 원재의 메모리 복구하기

JongHo.dev 2023. 11. 9. 20:53
728x90
728x90
SMALL

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV19AcoKI9sCFAZN

 

SW Expert Academy

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

swexpertacademy.com

풀이

메모리 bit 중 하나를 바꾸면 메모리 끝까지 덮어씌우기 때문에 

 

만약 1010은 

이렇게 변화하는 것을 볼 수 있다.

 

첫번째 글자부터 시작해서 0 -> 1 or 1 -> 0 바뀔 때마다 고친 횟수로 카운트하면 된다.

 

생각보다 간단한 문제였는데 길 잘못 들었으면 빙빙 돌아갈 뻔 했습니다 ...

 

문제를 보고 바로 코드 짜기보다는 펜을 잡고 생각해보는 습관을 가지자!@! 


#include <iostream>
#include <cstring>

using namespace std;

int main() {
	int t_c = 0;
	cin >> t_c;

	for (int i = 0; i < t_c; i++) {
		string str;
		cin >> str;
		int ans = 0; // 정답
		char c = '0';
		for (int j = 0; j < str.size(); j++) {
			if (c == str[j]) continue;
			else {
				c = str[j]; // 바뀔때마다 count
				ans++;
			}
		}
		cout << "#" << i + 1 << " " << ans << endl;

	} // t_c
	return 0;
}
728x90
728x90
LIST