문자열 뒤집기

 사용자는 입력으로 0과 1로 이루어진 문자열을 제공한다.

우리는 이 문자열을 하나의 숫자로만 이루어진 문자열로 만들어야 한다.

문자열을 조작하는 방법은 시작 인덱스에서 끝 인덱스까지 그 안에 있는 모든 숫자를

0이면 1로, 1이면 0으로 바꿀 수 있다.

이 때, 문자열을 조작하는 횟수가 최소한이 되게 하는 횟수를 구한다.


기본적인 아이디어는 다음과 같다.

1. 문자열을 읽으며 0의 묶음과 1의 묶음의 갯수를 구한다. 그 묶음 안에 몇 개의 0 또는 1이 존재하는지는 상관이 없다.

2. 묶음의 갯수가 더 적다는 것은 즉, 갯수가 더 많은 쪽보다 문자열을 뒤집는 횟수가 적다는 의미가 된다. 따라서 더 적은 묶음의 수를 대상으로 그 수를 모두 0 또는 1로 뒤집어 준다.

3. 마지막으로 그 횟수를 출력하여 준다.


파이썬으로 구현한 내용

1 단계의 코드













2, 3 단계의 코드





댓글