https://www.acmicpc.net/problem/2596
[난이도] Bronze1
[유형] 구현
[풀이]
문자열 8개에 대한 약속을 미리 저장해놓고,
입력 문자열을 6개씩 잘라서 어떤 문자열에 매칭되는지 일일히 확인해보면 됩니다.
#include <iostream>
#include <string>
using namespace std;
int N;
string s,sen[] = {"000000","001111","010011","011100","100110","101001","110101","111010"};
int cmp(string v,int i){
int ret=0;
for(int j=0;j<6;j++){
if(sen[i][j]!=v[j]) ret++;
}
return ret;
}
int main(){
cin >> N >> s;
string ans;
for(int i=0;i<N;i++){
string t = s.substr(i*6,6);
bool ok=0;
for(int j=0;j<8;j++){
if(cmp(t,j)<=1) {
ok=1;
ans+=('A'+j);
break;
}
}
if(!ok) {
cout << i+1;
return 0;
}
}
cout << ans;
}
https://github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Bronze1/2596.cpp
'Problem-Solving > BOJ' 카테고리의 다른 글
[BOJ/백준][Silver2] 2304 : 창고 다각형 (C++) (0) | 2022.07.21 |
---|---|
[BOJ/백준][Silver5] 2303 : 숫자 게임 (C++) (0) | 2022.07.21 |
[BOJ/백준][Silver5] 2622 : 삼각형만들기 (C++) (0) | 2022.07.21 |
[BOJ/백준][Silver3] 1244 : 스위치 켜고 끄기 (C++) (0) | 2022.07.21 |
[BOJ/백준][Silver5] 2635 : 수 이어가기 (C++) (0) | 2022.07.21 |