728x90
시간 제한 : 1초
메모리 제한 : 128MB
입력
입력은 여러 개의 비트 스트링으로 이루어져 있다. 각 비트 스트링은 한 줄로 이루어져 있고, 길이는 1~31비트이다. 또, 비트 스트링의 마지막 문자는 e 또는 o이다. (e: 짝수 패리티, o: 홀수 패리티) 마지막 줄에는 '#'이 주어진다.
출력
입력으로 주어진 각각의 비트 스트링에 대해서, 마지막 문자를 올바른 비트로 바꾼 비트 스트링을 출력한다.
소스코드
#include <iostream> #include <string> using namespace std; int main(void) { while (1) { int one = 0, len; string str; cin >> str; if (str == "#") break; len = str.length(); for (int i = 0; i < len - 1; i++) if (str[i] == '1') one++; if (str[len - 1] == 'e') { if (one % 2 == 0) str[len - 1] = '0'; else str[len - 1] = '1'; } else { if (one % 2 == 0) str[len - 1] = '1'; else str[len - 1] = '0'; } cout << str << '\n'; } }
Tip
간단한 문자열 처리 문제로, 1의 홀수 짝수만 체크하고 패리티에 맞춰 마지막 비트를 정해주면 되는 문제다.
728x90
'Computer Science > Algorithm Problem' 카테고리의 다른 글
백준] 1864 - 문어 숫자(ACM-ICPC Regionals) (0) | 2018.12.29 |
---|---|
백준] 2436 - 공약수(한국정보올림피아드 2011, KOI 2011 전국본선) (0) | 2018.12.29 |
백준] 1731 - 추론 (0) | 2018.11.29 |
백준] 2018 - 수들의 합 5 (0) | 2018.11.24 |
백준] 9661 - 돌 게임 7 (0) | 2018.11.10 |