반응형
https://www.acmicpc.net/problem/5220
이진법 변환, 함수를 구현해 푼 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
테스트 케이스 t를 선언 후 t만큼 하기 숫자들을 입력해줍니다.num, checkBit를 선언 후 입력해줍니다.
📔 풀이과정
이진법으로 변환하는 함수 bin을 수행 후 그 값을 지역변수 binString를 선언 후 할당해줍니다.
📔 정답출력
binString의 checkBIt가 같은지를 알아내는 함수 isSame을 수행한 결과 적절히 답을 출력합니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
int t;
string bin(int num){
int tmp = num;
string binString = "";
while(tmp){
binString += to_string(tmp % 2);
tmp/=2;
}
reverse(binString.begin(), binString.end());
return binString;
}
bool isSame(string binString, int checkBit){
int cntOne = 0;
for(auto b : binString)
if(b == '1') cntOne++;
if(cntOne % 2) cntOne = 1;
else cntOne = 0;
return checkBit == cntOne;
}
int main(){
cin >> t;
while(t--){
int num, checkBit;
cin >> num >> checkBit;
string binString = bin(num);
if(isSame(binString, checkBit)) cout << "Valid\n";
else cout << "Corrupt\n";
}
}
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 5235 : Even Sum More Than Odd Sum (0) | 2021.12.15 |
---|---|
(C++) - 백준(BOJ) 23825: SASA 모형을 만들어보자 (0) | 2021.12.14 |
(C++) - 백준(BOJ) 5102 : Sarah's Toys (0) | 2021.12.13 |
(C++) - 백준(BOJ) 5101 : Sequences (0) | 2021.12.12 |
(C++) - 백준(BOJ) 5074 : When Do We Finish? (0) | 2021.12.11 |