일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- level3
- Euclidean
- BOJ
- two pointer
- Modern C++
- Bronze
- PrefixSum
- 3D RPG
- SWEA
- BFS
- level1
- LEVEL2
- Zenject
- stack
- Project
- algorithm
- 프로세스 상태
- solid 원칙
- dirtyflag pattern
- programmers
- knapsack Problem
- effective C++
- Gold
- trie
- 8-Puzzle
- Unity
- Flyweight Pattern
- Silver
- 프로그래머스
- binary search
Archives
- Today
- Total
Patrick's Devlog
[프로그래머스/C++] 숫자 문자열과 영단어 본문
1. 개요
https://school.programmers.co.kr/learn/courses/30/lessons/81301
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1-1. 설명
네오와 프로도가 숫자놀이를 하고있다. 네오가 프로도에게 숫자를 건낼 때 일부 자릿수를 영단어로 바꾼 카드를 건내주면 프로도는 원래 숫자를 찾는 게임이다. 우리는 숫자를 return 하도록 하는 함수를 구현한다.
1-2. 제한 사항
- 입력으로 들어오는 s는 1 이상 50 이하
- s가 "zero", 0으로 시작하는 경우는 없음
2. 구현
2-1. 풀이
받은 문자열을 반복문을 통해 숫자면 그대로 result에 저장하고, 문자이면 저장한다. 그리고 영문으로 된 숫자가 하나 완성되면 그 숫자에 맞는 수가 저장된다.
2-2. 코드
#include <string>
#include <vector>
using namespace std;
string nums[10] = {"zero", "one", "two" , "three", "four", "five", "six", "seven", "eight", "nine"};
int solution(string s) {
string curStr = "", result = "";
for (char ch : s) {
if (ch >= '0' && ch <= '9') result += ch;
else {
curStr += ch;
for (int i = 0; i < 10; i++) {
if (curStr == nums[i]) {
result += (char) i + '0';
curStr = "";
break;
}
}
}
}
return stoi(result);
}
'Algorithm > Algorithms Practice' 카테고리의 다른 글
[BOJ/C++] 덩치(7568번) (0) | 2022.10.13 |
---|---|
[BOJ/C++] 블로그(21921번) (0) | 2022.10.12 |
[BOJ/C++] 올림픽(8979번) (0) | 2022.10.10 |
[프로그래머스/C++] 멀리뛰기 (0) | 2022.10.07 |
[프로그래머스/C++] 성격 유형 검사하기 (1) | 2022.10.06 |