반응형
문제
Problem_Link
내 답
- 1시간 제한
- 인터넷 사용 안함
내 코드
Compile Error
최선의 답
인터넷과 책에서 찾아본 답
class Solution {
public int countBinarySubstrings(String s) {
int curRun = 1;
int preRun = 0;
int count = 0;
for (int i = 1; i < s.length(); i++) {
if (s.charAt(i) == s.charAt(i - 1)) ++curRun;
else {
count += Math.min(curRun, preRun);
preRun = curRun;
curRun = 1;
}
}
return count + Math.min(curRun, preRun);
}
}
- Time complexity : O(n)
- Space complexity : O(1)
반성 할 점
- 각 숫자를 카운트 한후, 두 숫자에서 작은 수가 가능한 값이라는것을 이용해서 모두 더함으로 답을 구함
- 0001111 을 예로 들면, 0은 3개고 1은 4개 이므로, 답은 3이라고 할수 있음. 0001111->(3,4)-작은수->3
- 이 반복되는 규칙을 아예 찾지 못했으므로, 코드를 완성했더라도 제대로 돌아가지 않으리라고 생각함. 이를 찾는 연습이 필요함.
반응형
'old > Algorithm Solving' 카테고리의 다른 글
Wave Array문제의 자바 해결 방법: 효율적인 알고리즘 (0) | 2023.04.24 |
---|---|
Geekina Loves Order 문제의 자바 솔루션 (0) | 2023.04.05 |
Add Strings 문제풀이 (0) | 2021.09.11 |
Remove Duplicates from Sorted Array 문제풀이 (0) | 2021.09.11 |
Two Sum문제 풀이 (0) | 2021.09.09 |