※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 25594번 문제인 HG 음성기호이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/25594
25594번: HG 음성기호
최근 해강이는 군대에 관심이 생겨 군대 관련 영상을 찾아 보고 있었다. 그러던 중 한 영상에서 '알파, 알파 여기는 브라보..' 이런 식으로 소통하는 모습을 봤다. 이 순간 해강이는 영상 속 인물
www.acmicpc.net
주어진 문자열의 읽을 차례의 첫 글자가 무엇인지를 확인한 뒤, 그 글자와 대응되는 HG 음성기호와 대조하는 것을 반복해 문제를 해결하자.
문제에 주어진 표를 그대로 복붙한 문자열을 별도의 코드를 작성해 전처리하는 것으로 HG 음성기호 테이블을 편하게 작성할 수 있다.
아래는 제출한 소스코드이다.
#include <iostream>
#include <string>
using namespace std;
string HG[128];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
HG['a'] = "aespa";
HG['b'] = "baekjoon";
HG['c'] = "cau";
HG['d'] = "debug";
HG['e'] = "edge";
HG['f'] = "firefox";
HG['g'] = "golang";
HG['h'] = "haegang";
HG['i'] = "iu";
HG['j'] = "java";
HG['k'] = "kotlin";
HG['l'] = "lol";
HG['m'] = "mips";
HG['n'] = "null";
HG['o'] = "os";
HG['p'] = "python";
HG['q'] = "query";
HG['r'] = "roka";
HG['s'] = "solvedac";
HG['t'] = "tod";
HG['u'] = "unix";
HG['v'] = "virus";
HG['w'] = "whale";
HG['x'] = "xcode";
HG['y'] = "yahoo";
HG['z'] = "zebra";
string s; cin >> s;
int slen = s.length();
int idx = 0;
string ans = "";
while (idx < slen) {
string& tmp = HG[s[idx]];
int tmplen = tmp.length();
if (idx + tmplen <= slen) {
if (s.substr(idx, tmplen) == tmp) {
ans += s[idx];
idx += tmplen;
}
else {
cout << "ERROR!";
return 0;
}
}
else {
cout << "ERROR!";
return 0;
}
}
cout << "It's HG!\n";
cout << ans;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 25713 // C++] 괴도 인하 (0) | 2022.10.17 |
---|---|
[BOJ 25595 // C++] 86 ─에이티식스─ 2 (0) | 2022.10.16 |
[BOJ 25593 // C++] 근무 지옥에 빠진 푸앙이 (Small) (0) | 2022.10.14 |
[BOJ 25592 // C++] 바둑돌 게임 (0) | 2022.10.13 |
[BOJ 25591 // C++] 푸앙이와 종윤이 (0) | 2022.10.12 |