[백준/BOJ]1439. 뒤집기 [Silver5]

jychan99·2021년 8월 24일
0
post-thumbnail
  1. 뒤집기

문제출처 : https://www.acmicpc.net/problem/1439

code

#include <stdio.h>
#include <string.h>      //strlen을 쓰기위한 헤더
int main()
{
	char S[1000000] = " ";    //S의 크기는 100만보다 작음
	int cnt = 0;
	scanf("%s", &S);
	int len = strlen(S);    //문자열의 길이를 재는 strlen()함수
	for (int i = 0; i < len; i++)
	{
		if (S[i]!=S[i+1])  //문자가 바뀔때 cnt++을 해준다
			cnt++;
	}
	printf("%d", cnt/2);  //2로 나눠주는 이유는 010이면 문자가 2번바뀌므로 cnt는 2가되는데, 
	return 0;          // 실제로는 1번만 바뀌는걸로 보기때문에 2로 나눠준다.
}                      //그리고 마지막에 0과 NULL문자와 비교할때도 cnt가 1올라가는데,
                       //어차피 홀수면 결과가 바뀌진 않기 때문에 상관없음
                       //그리고 이렇게 세면 0->1이나 1->0상관없이 최소횟수를 세기때문에  구분할             
                       //필요도 없어진다. (처음엔 구분해서 함수만들려고 했는데 이게더 빠르다.)

코드에 주석을 달아서 설명하는게 컴퓨터로 보면 편한데, 폰으로보니까 조금 깨지는것 같다.
나중에는 뭐 VS로 작성한다음 주석달아서 사진으로 첨부하던지 할까 생각중이다.

profile
내가 지금 두려워 하고 있는 일이 바로 내가 지금 해야 할 일이다. 🐥

0개의 댓글