
문제
* 해당 문제의 모든 저작권은 프로그래머스 측에 있으며 본 블로그는 학업 흔적을 남겨 학업 상향을 위한 블로그로 이익을 추구하지 않으며 프로그래머스 측의 약관을 위배하지 않음을 명시합니다.*
https://programmers.co.kr/learn/courses/30/lessons/81301
코딩테스트 연습 - 숫자 문자열과 영단어
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자
programmers.co.kr
풀이
개인적인 생각인데 프로그래머스 문제는 백준이나 SWEA보다 기업 코딩테스트에 가깝게 출시되는 것 같다
프로그래머스 1레벨은 알고리즘 문제보다는 구현이나 문자열 처리 문제가 많은 거 같다.
붙어있는 문자들 때문에 temp 버퍼 초기화해주면서 사용하는 방향으로 풀었다.
소스 코드
#include <string>
#include <iostream>
#include <vector>
#include <map>
using namespace std;
int solution(string s) {
int answer = 0;
string num = "";
string tmp = "";
map<string, char> cmap;
cmap["zero"] = '0';
cmap["one"] = '1';
cmap["two"] = '2';
cmap["three"] = '3';
cmap["four"] = '4';
cmap["five"] = '5';
cmap["six"] = '6';
cmap["seven"] = '7';
cmap["eight"] = '8';
cmap["nine"] = '9';
for(int i = 0; i < s.size(); i++) {
if (isdigit(s[i]) != 0)
num += s[i];
else {
tmp += s[i];
}
if(cmap.find(tmp) != cmap.end()) {
num += cmap[tmp];
tmp = "";
}
}
answer = stoi(num);
cout << answer << '\n';
return answer;
}'Programming Practice > PROGRAMMERS' 카테고리의 다른 글
| [PG] 키패드 누르기 - Lv.1 (C++) (0) | 2022.06.28 |
|---|---|
| [PG] 로또의 최고 순위와 최저 순위 - Lv.1 (C++) (0) | 2022.06.17 |
| [PG] 신고 결과 받기 - Lv.1 (0) | 2022.06.14 |
| [PG] 신규 아이디 추천 - Lv.1 (0) | 2022.06.12 |