-
https://school.programmers.co.kr/learn/courses/30/lessons/70129
프로그래머스 이진 변환 반복하기 문제입니다.
아이디어
단순 구현문제입니다. 비트연산자를 많이 쓰려고 노력했습니다.
#include <string> #include <vector> #include <algorithm> using namespace std; string convertBinary(int n) { string temp = ""; while (n != 0) { temp.append(to_string((int)n & 1)); n = n >> 1; } reverse(temp.begin(), temp.end()); return temp; } vector<int> solution(string s) { vector<int> answer; int zeroCnt = 0; int convertCnt = 0; string convertResult = ""; while (convertResult != "1") { int size = s.size(); convertResult = ""; // 0제거 for (auto&e : s) { if (e == '1') convertResult += "1"; } // 제거된 0 카운트 zeroCnt += size - convertResult.size(); // 2진 변환 convertResult = convertBinary(conve rtResult.size()); s = convertResult; convertCnt++; } answer = { convertCnt, zeroCnt }; return answer; }
'알고리즘 > 프로그래머스' 카테고리의 다른 글
Programers 단속카메라 / C++ (0) 2022.12.03 Programers 같은 숫자는 싫어 (0) 2022.09.11 2022 카카오 여름인턴쉽 코딩테스트 4번 등산코스 정하기 (0) 2022.09.06 2022 카카오 여름인턴쉽 코딩테스트 3번 코딩 테스트 공부 (0) 2022.09.04 Programers 124나라의 숫자 (0) 2022.07.26 댓글