euisblue
81301. 숫자 문자열과 영단어

Level 1 숫자 문자열과 영단어

시간 복잡도: O(N), N = length of a string

1#include <bits/stdc++.h> 2using namespace std; 3 4int solution(string s) { 5 const int SIZE = s.size(); 6 7 string n = ""; 8 int answer; 9 10 for(int i=0; i<SIZE; ++i) { 11 switch(s[i]) { 12 case 'z': n += '0'; i+=3; break; 13 case 'o': n += '1'; i+=2; break; 14 case 'e': n += '8'; i+=4; break; 15 case 'n': n += '9'; i+=3; break; 16 case 't': { 17 bool t = s[i+1] == 'w'; 18 n += (t ? '2' : '3'); 19 i += (t ? 2 : 4); 20 break; 21 } 22 case 'f': { 23 bool t = s[i+1] == 'o'; 24 n += (t ? '4' : '5'); 25 i += 3; 26 break; 27 } 28 case 's': { 29 bool t = s[i+1] == 'i'; 30 n += (t ? '6' : '7'); 31 i += (t ? 2 : 4); 32 break; 33 } 34 default: 35 n += s[i]; 36 } 37 } 38 39 stringstream ss; 40 ss << n; 41 ss >> answer; 42 return answer; 43}