https://www.acmicpc.net/problem/1755
1755번: 숫자놀이
79를 영어로 읽되 숫자 단위로 하나씩 읽는다면 "seven nine"이 된다. 80은 마찬가지로 "eight zero"라고 읽는다. 79는 80보다 작지만, 영어로 숫자 하나씩 읽는다면 "eight zero"가 "seven nine"보다 사전순으로
www.acmicpc.net
#include <bits/stdc++.h>
int main(){
std::ios_base::sync_with_stdio(false);
std::cin.tie(nullptr);
std::unordered_map<int, std::string> numToStr;
std::unordered_map<std::string, int> strToNum;
std::string numStr[] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
for (int i = 0; i < 10; ++i){
numToStr[i] = numStr[i];
strToNum[numStr[i]] = i;
}
std::vector<std::string> answers;
int m, n;
std::cin >> m >> n;
for (int i = m; i <= n; ++i){
std::string s = "";
if (i / 10 != 0){
s += numToStr[i / 10];
s += " ";
}
s += numToStr[i % 10];
answers.emplace_back(s);
}
std::sort(answers.begin(), answers.end());
int cnt = 0;
for (std::string str : answers){
// stream객체는 일회용
std::stringstream ss;
ss.str(str);
std::string s;
int number = 0;
while(ss >> s){
number = number * 10 + strToNum[s];
}
std::cout << number << " ";
if (cnt % 10 == 9){
std::cout << "\n";
}
++cnt;
}
return 0;
}
'백준 문제풀이 > String' 카테고리의 다른 글
[C++] 백준 문제풀이 (String) 11899번 괄호 끼워넣기 (0) | 2023.07.07 |
---|---|
[C++] 백준 문제풀이 (String) 2992번 크면서 작은 수 (0) | 2023.06.29 |
[C++] 백준 문제풀이 (String) 1972번 놀라운 문자열 (0) | 2023.06.29 |
[C++] 백준 문제풀이 (String) 15353 큰 수 A+B (2) (0) | 2023.06.28 |
[C++] 백준 문제풀이 (String) 4659번 비밀번호 발음하기 (0) | 2023.06.28 |