반응형
https://leetcode.com/problems/binary-gap/description/
이진법 변환 구현 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
1. 이진법으로 변환해 문자열 변수 s에 저장해줍니다.2. 1인 부분의 index를 vector idxs를 선언해 저장해줍니다.
📔 풀이과정
1. 거리 비교할 idxs의 크기가 2보다 작다면 0을 반환합니다.2. 인접한 idxs의 원소끼리의 거리를 구해 dist의 최댓값을 저장합니다.
📔 정답 출력 | 반환
dist를 반환합니다.
📕 Code
📔 C++
class Solution {
public:
string getString(int n) {
string bin;
while(n) {
bin += to_string(n % 2);
n /= 2;
}
reverse(bin.begin(), bin.end());
return bin;
}
int binaryGap(int n) {
string s = getString(n);
vector <int> idxs;
int dist = 0;
for(int i = 0; i < s.size(); i++) {
if(s[i] == '1') {
idxs.push_back(i);
}
}
if(idxs.size() < 2) return 0;
for(int i = 1; i < idxs.size(); i++) {
dist = max(dist, idxs[i] - idxs[i-1]);
}
return dist;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > String' 카테고리의 다른 글
(C++) - LeetCode (easy) 929. Unique Email Addresses (0) | 2023.09.05 |
---|---|
(C++, Rust) - LeetCode (easy) 917. Reverse Only Letters (0) | 2023.08.31 |
(C++) - LeetCode (easy) 859. Buddy Strings (0) | 2023.08.01 |
(C++) - LeetCode (easy) 844. Backspace String Compare (0) | 2023.07.31 |
(C++) - LeetCode (easy) 824. Goat Latin (0) | 2023.07.24 |