※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 24745번 문제인 Morse Code Palindromes이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/24745
24745번: Morse Code Palindromes
A palindrome is a word, number, phrase, or other sequence of characters which reads the same backward as forward, such as madam or racecar or 1881. Phase palindromes ignore capitalization, punctuation, and word boundaries. For example: Madam I'm Adam. Mors
www.acmicpc.net
주어진 문자열의 각 알파벳과 숫자를 문제에서 주어진 모스코드로 변환하고, 이를 뒤집어 원래의 모스코드와 같은지 비교하는 것으로 문제를 해결할 수 있다.
각 문자의 모스코드를 제대로 옮겼는지, 대소문자 처리를 했는지, 주어진 예시들처럼 공백까지 일치할 필요는 없다는 점을 인지했는지, 주어진 문자열에 알파벳과 숫자가 없다면 조건대로 NO를 출력하는지 등을 확인하면서 구현하자.
아래는 제출한 소스코드이다.
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
string morse[128];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
morse['A'] = ".-";
morse['B'] = "-...";
morse['C'] = "-.-.";
morse['D'] = "-..";
morse['E'] = ".";
morse['F'] = "..-.";
morse['G'] = "--.";
morse['H'] = "....";
morse['I'] = "..";
morse['J'] = ".---";
morse['K'] = "-.-";
morse['L'] = ".-..";
morse['M'] = "--";
morse['N'] = "-.";
morse['O'] = "---";
morse['P'] = ".--.";
morse['Q'] = "--.-";
morse['R'] = ".-.";
morse['S'] = "...";
morse['T'] = "-";
morse['U'] = "..-";
morse['V'] = "...-";
morse['W'] = ".--";
morse['X'] = "-..-";
morse['Y'] = "-.--";
morse['Z'] = "--..";
morse['0'] = "-----";
morse['1'] = ".----";
morse['2'] = "..---";
morse['3'] = "...--";
morse['4'] = "....-";
morse['5'] = ".....";
morse['6'] = "-....";
morse['7'] = "--...";
morse['8'] = "---..";
morse['9'] = "----.";
string s; getline(cin, s);
string str = "";
string rev;
for (auto& l : s) {
l = toupper(l);
str += morse[l];
}
if (str == "") cout << "NO";
else {
rev = str;
reverse(rev.begin(), rev.end());
if (str == rev) cout << "YES";
else cout << "NO";
}
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 24820 // C++] Spelling Bee (0) | 2022.03.25 |
---|---|
[BOJ 24751 // C++] Betting (0) | 2022.03.24 |
[BOJ 9933 // C++] 민균이의 비밀번호 (0) | 2022.03.22 |
[BOJ 2503 // C++] 숫자 야구 (0) | 2022.03.21 |
[BOJ 13900 // C++] 순서쌍의 곱의 합 (0) | 2022.03.20 |