25593번: 근무 지옥에 빠진 푸앙이 (Small)
군대에 간 푸앙이는 4교대 근무를 서게 된다. 근무 시간대는 08:00~12:00, 12:00~18:00, 18:00~22:00, 22:00~08:00 으로 각각 4, 6, 4, 10시간의 근무로 구성되어 있다. 푸앙이와 동기들은 근무 시간이 최대한 공평
www.acmicpc.net
ASCII code
- 제목
HG 음성기호
- 조건
시간 제한 : 1 초
메모리 제한 : 1024 MB
- 문제
최근 해강이는 군대에 관심이 생겨 군대 관련 영상을 찾아 보고 있었다. 그러던 중 한 영상에서 '알파, 알파 여기는 브라보..' 이런 식으로 소통하는 모습을 봤다. 이 순간 해강이는 영상 속 인물들이 무슨 말을 하는지 궁금했고 이것이 NATO 표준음성기호였음을 알게 됐다. 그래서 해강이는 NATO 기호를 본따 자신만의 음성 기호인 HG 표준음성기호를 만들었다. 신이 난 해강이는 친구들에게 자신이 만든 HG 표준음성기호를 알려주고 이것으로 소통하자고 했다. 그런데 해강이의 친구 중 한 명인 영재는 HG 표준 음성기호를 이해하지 못해 해강이와의 소통에 어려움을 겪고 있다. 이런 영재를 위해 랜덤한 문자열이 주어지면 해당 문자열이 올바른 HG 표준음성 기호들로 표현되었는지 알려주고 올바르게 표현되었다면 원래 단어를 알려주자!
다음은 해강이가 만든 HG 표준음성기호 표이다.
a | aespa | k | kotlin | u | unix |
b | baekjoon | l | lol | v | virus |
c | cau | m | mips | w | whale |
d | debug | n | null | x | xcode |
e | edge | o | os | y | yahoo |
f | firefox | p | python | z | zebra |
g | golang | q | query | ||
h | haegang | r | roka | ||
i | iu | s | solvedac | ||
j | java | t | tod |
- 입력
첫째 줄에 문자열 S가 주어진다.
문자열 S는 HG 표준 음성기호단어로 이루어질 수도 있고 아닐 수도 있다. (1 ≤ |S| ≤ 8×10^6)
모든 입력은 알파벳 소문자로만 주어진다.
- 출력
주어진 문자열 S가 전부 HG 표준 음성기호로 이루어 있다면, "It's HG!"를 출력하고 다음 줄에 원래 단어를 출력한다.
그렇지 않다면, 원래 단어를 알 수 없기에 "ERROR!"을 출력한다.
예제 입력1 | 예제 출력1 |
cauaespaunix | It's HG! cau |
예제 입력2 | 예제 출력2 |
cauaespauniy | ERROR! |
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
#define fastio ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define endl '\n'
int main() {
fastio;
string str, ans;
vector<string> nato ={
"aespa", "baekjoon", "cau", "debug",
"edge", "firefox", "golang", "haegang",
"iu", "java", "kotlin", "lol", "mips",
"null", "os", "python", "query", "roka",
"solvedac", "tod", "unix", "virus", "whale",
"xcode", "yahoo", "zebra"
};
cin >> str;
bool able = true;
int curr = 0;
while(curr < str.size()){
int idx = str[curr] - 'a';
int sz = nato[idx].size();
if(sz > str.size() - curr){
able = false;
break;
}
string tmp = str.substr(curr, sz);
if(tmp == nato[idx]){
curr += sz;
ans += char(idx + 'a');
}
else{
able = false;
break;
}
}
if(able){
cout << "It's HG!" << endl;
cout << ans << endl;
}
else cout << "ERROR!" << endl;
return 0;
}
'Problem Solving > BaekJoon' 카테고리의 다른 글
[BOJ/백준] 25584 - 근무 지옥에 빠진 푸앙이 (Large) (0) | 2022.09.19 |
---|---|
[BOJ/백준] 25595 - 86 ─에이티식스─ 2 (0) | 2022.09.19 |
[BOJ/백준] 25593 - 근무 지옥에 빠진 푸앙이 (Small) (0) | 2022.09.19 |
[BOJ/백준] 25592 - 바둑돌 게임 (0) | 2022.09.19 |
[BOJ/백준] 25591 - 푸앙이와 종윤이 (0) | 2022.09.19 |