
코드트리 조별과제 6회차 (8.19 ~ 8.25)
·
알고리즘 (with JAVA)/코드트리 조별과제
상태 반전이 가능한 문제 [ 문제 ]문자열 길이 4인 0100이 주어졌을 때, 부분 문자열을 고르면, 해당 문자열 내 문자들이0은 1, 1은 0으로 반전이 일어난다고 한다.이때, 부분 문자열을 적절하게 골라 최소 횟수로 문자열이 1111이 되도록 하세요. [ 접근 방법 ]0100에서 [2,2] 구간을 0000으로 만든 뒤, [1,4] 구간을 뒤집으면 1111이 되므로 최소 횟수는 2가 된다.먼저, 다음과 같이 생각을 해보자.전부 숫자 1을 만들기 위해 뒤집어야 하는 구간 끼리는 어떤 관계가 있을까?문제 특성상, 두 구간이 겹치는 곳에 있는 문자들은 2번 뒤집히기 때문에 결국 뒤집히지 않은 것과 같다.즉, 2번 뒤집혔다는 것은, 뒤집지 않았다는 것과 같다.이는 곧, 뒤집을 필요가 없다는 말과도 같다.예를..