๋ฌธ์ )
๋ฌธ์ ์ค๋ช )
์ซ์+๋ฌธ์๋ก ์ฃผ์ด์ง๋ string ์ ๋ชจ๋ ์ซ์๋ก ์นํํ์ฌ ์ถ๋ ฅํด์ผ ํ๋ค.
๋ฌธ์ ํ์ด)
์ ์ถ๋ ฅ ์๋ฅผ ๋ณด๋ฉด, "one4sevennight" ์ 1478๋ก ๋ฐ๊ฟ์ ์ถ๋ ฅํ๋ค.
์ฆ, ๋ฌธ์๋ ์ซ์๋ก ๋ณํํด์ผํ๊ณ ์ซ์๋ ๊ทธ๋๋ก ์ถ๋ ฅํ๋ฉด ๋๋ค.
๋ฐ๋ผ์, string s ๋ฅผ i๋ฒ์งธ๋ถํฐ ํ์ํด์ ์ซ์๊ฐ ๋์ค๋ฉด ์๋ก์ด ๋ฌธ์์ด์ธ string numString์ ๋ฃ๊ณ , ๋ฌธ์๊ฐ ๋์ค๋ฉด ํด๋น ๋ฌธ์๊ฐ zero ~ nine ์ค์ ์ด๋ค ์ซ์์ธ์ง๋ฅผ ์์๋ด์ numString๋ณ์์ ๋ฃ๋๋ค.
๋ฌธ์ ํ์๋ฐฉ๋ฒ์ s[i] ๊ฐ 'z' ๋ผ๋ฉด zero๋ผ๋ ๋ฌธ์์ด๋ฟ์ด๋ฏ๋ก s[i] ~ s[i+3]๋ฅผ 0์ ์ ๋ต ๋ฌธ์์ด numString์ ๋ฃ๋๋ค.
s[i] ๊ฐ 't'๋ผ๋ฉด two ๋๋ three ๋ฌธ์์ด์ด๋ฏ๋ก s[i+1]๊น์ง ํ์ธํ์ฌ 2 ๋๋ 3์ numString์ ๋ฃ๋๋ค.
๋ง์ง๋ง์ผ๋ก string numString์ ์ซ์๋ก ๋ฐ๊ฟ์(atoi()ํจ์ ์ด์ฉ) returnํด์ค๋ค.
์ฃผ์์ฌํญ)
string -> int ๋ก ๋ณํํ๋ ํจ์๋ atoi() ์ด๋ค.
์ด ๋, ๊ทธ๋ฅ atoi()๋ฅผ ์จ์ฃผ๋ฉด ์๋๊ณ , C์ธ์ด ํ์ ํจ์์ด๋ฏ๋ก atoi(string๋ณ์.c_str()) ํจ์๋ฅผ ์จ์ค์ผ ํ๋ค.
์ฝ๋)
#include <string>
#include <vector>
using namespace std;
int solution(string s) {
string numString = "";
for(int i=0; i<s.size(); i++){
//์ซ์ ์ผ ๋: ๋ฐ๊ฟ ํ์ ์์ด ๊ทธ๋๋ก ์ถ๋ ฅํ๋ฉด ๋จ
if(s[i]>='0' && s[i]<='9'){
numString += s[i];
continue;
}
//๋ฌธ์์ผ ๋: ์ซ์๋ก ๋ฐ๊ฟ์ผ ํจ
else{
switch(s[i]){
case 'z'://zero
i+=3;
numString+='0';
break;
case 'o'://one
i+=2;
numString+='1';
break;
case 't'://two or three
if(s[i+1]=='w'){
i+=2;
numString+='2';
}
else if(s[i+1]=='h'){
i+=4;
numString+='3';
}
break;
case 'f'://four or five
if(s[i+1]=='o'){
i+=3;
numString+='4';
}
else if(s[i+1]=='i'){
i+=3;
numString+='5';
}
break;
case 's'://six or seven
if(s[i+1]=='i'){
i+=2;
numString+='6';
}
else if(s[i+1]=='e'){
i+=4;
numString+='7';
}
break;
case 'e'://eight
i+=4;
numString+='8';
break;
case 'n'://nine
i+=3;
numString+='9';
break;
}
}
}
return atoi(numString.c_str());
}
'๐ Coding Test Study > Algorithm Problem' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++][Baekjoon] 16974๋ฒ ์์ธ ์งํ์ฒ 2ํธ์ (0) | 2021.08.22 |
---|---|
[C++][BAEKJOON][Dijkstra Alg] 1261๋ฒ ์๊ณ ์คํ (0) | 2021.08.22 |
[C++][ํ๋ก๊ทธ๋๋จธ์ค] 2021 ์นด์นด์ค ์ธํด์ญ ๋ฌธ์ , ๊ฑฐ๋ฆฌ๋๊ธฐ ํ์ธํ๊ธฐ (0) | 2021.08.17 |
[C++][BAEKJOON][DP] 2156๋ฒ ํฌ๋์ฃผ ์์ (0) | 2021.08.05 |
[C++][Baekjoon][Backtracking] 9663๋ฒ N-Queen ํ์ด (0) | 2021.08.05 |