반응형
1. 문제 정의
2. 문제 접근
할 수 있는 만큼 flip을 시켜주면 되므로 greedy를 이용한다.
3. 문제 풀이
- 처음 '0'부터 비교 문자를 시작한다.
- 인덱스가 0부터 이전 문자와 비교하여 다르면 count를 1 증가시킨다.
- count를 리턴한다.
4. 코드
class Solution {
public int minFlips(String target) {
char[] array = target.toCharArray();
int count = 0;
char prev = '0';
for(int i = 0; i < array.length; ++i) {
if(prev != array[i])
count++;
prev = array[i];
}
return count;
}
}
5. 회고
만약 10101 이 우리가 원하는 문자열이라고 생각해보자. 우리는 00000 부터 시작하므로
00000
111111
10000
10111
10100
10101
이렇게 변하게 된다.
잘 살펴보면 결국 이전 문자랑 다를 경우 count를 올려서 flip을 하는걸 알 수 있다.
문제 풀이는 간단하지만 이런 규칙을 찾는게 생각보다 어려운 것 같다...
반응형
'세션 > 항해플러스' 카테고리의 다른 글
항해 플러스 백엔드 챕터 2 후기 (0) | 2024.07.20 |
---|---|
WIL 3주차 회고 (0) | 2024.07.06 |
WIL 2주차 회고 (1) | 2024.06.30 |
WIL 1주차 회고 (0) | 2024.06.22 |
시작하는 마음 (0) | 2024.06.15 |