No Rules Rules

비밀편지 (feat. 백준, 2596번) 본문

생활/코테

비밀편지 (feat. 백준, 2596번)

개발하는 완두콩 2023. 1. 26. 12:24
728x90
반응형

비밀편지
https://www.acmicpc.net/problem/2596

 

2596번: 비밀편지

병현이는 지은이에게 문자 A, B, C, D, E, F, G, H 로 쓰여진 편지를 날마다 보내는데, 컴퓨터로 보내는 비밀편지로, 한 문자마다 0 또는 1인 숫자 여섯 개를 사용하여 보낸다. 둘 사이의 약속은 다음과

www.acmicpc.net

 

// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
#include <string>
using namespace std;
int main() {
	ios::sync_with_stdio(false), cin.tie(NULL);
    string arr[] = {"000000", "001111", "010011", "011100", "100110", "101001", "110101", "111010"};
    string tmp, ans;
    register int N;
    cin >> N >> tmp;
    for(register int n = 0; n < N; ++n){
        auto str = tmp.substr(n * 6, 6);
        register int idx = -1;
        for(register int i = 0; i < 8; ++i)
            if(!str.compare(arr[i])){
                idx = i;
                break;
            }
        if(idx != -1)
            ans += (char)('A' + idx);
        else{
            for(register int i = 0; i < 8; ++i){
                register int cnt = 0;
                for(register int j = 0; j < 6; ++j)
                    if(str.at(j) != arr[i].at(j))
                        ++cnt;
                if(cnt == 1){
                    ans += (char)('A' + i);
                    idx = 0;
                    break;
                }
            }
            if(idx != 0){
                cout << n + 1, ans.clear();
                break;
            }
        }
    }
    if(!ans.empty())
        cout << ans;
    return 0;
}
// *&)*@*

 

반응형

문제의 조건처럼 문자열의 문자를 검사하여 출력하는 문제입니다.

728x90
반응형

'생활 > 코테' 카테고리의 다른 글

피시방 알바 (feat. 백준, 1453번)  (0) 2023.01.27
숨바꼭질 2 (feat. 백준, 12851번)  (0) 2023.01.27
A+B - 6 (feat. 백준, 10953번)  (0) 2023.01.25
2007년 (feat. 백준, 1924번)  (0) 2023.01.25
홀수 (feat. 백준, 2576번)  (0) 2023.01.25
Comments