leetcode 423. Reconstruct Original Digits from English
문제점 : one이 가능한 모든 것들을 잡아버림
class Solution {
public:
string originalDigits(string s)
{
vector<int> map(26);
string ans = "";
for(int i=0; i<s.size(); i++)
map[s[i]-97] += 1;
for(int i=0; i<s.size(); i++)
{
if(map['z'-97] > 0 && map['e'-97] > 0 && map['r'-97] > 0 && map['o'-97] > 0)
{
map['z'-97]--;
map['e'-97]--;
map['r'-97]--;
map['o'-97]--;
ans += '0';
}
else if(map['o'-97] > 0 && map['n'-97] > 0 && map['e'-97] > 0)
{
map['o'-97]--;
map['n'-97]--;
map['e'-97]--;
ans += '1';
}
else if(map['t'-97] > 0 && map['w'-97] > 0 && map['o'-97] > 0)
{
map['t'-97]--;
map['w'-97]--;
map['o'-97]--;
ans += '2';
}
else if(map['t'-97] > 0 && map['h'-97] > 0 && map['r'-97] > 0 && map['e'-97] > 1)
{
map['t'-97]--;
map['h'-97]--;
map['r'-97]--;
map['e'-97] -=2;
ans += '3';
}
else if(map['f'-97] > 0 && map['o'-97] > 0 && map['u'-97] > 0 && map['r'-97] > 0)
{
map['f'-97]--;
map['o'-97]--;
map['u'-97]--;
map['r'-97]--;
ans += '4';
}
else if(map['f'-97] > 0 && map['i'-97] > 0 && map['v'-97] > 0 && map['e'-97] > 0)
{
map['f'-97]--;
map['i'-97]--;
map['v'-97]--;
map['e'-97]--;
ans += '5';
}
else if(map['s'-97] > 0 && map['i'-97] > 0 && map['x'-97] > 0)
{
map['s'-97]--;
map['i'-97]--;
map['x'-97]--;
ans += '6';
}
else if(map['s'-97] > 0 && map['e'-97] > 1 && map['v'-97] > 0 && map['n'-97] > 0)
{
map['s'-97]--;
map['e'-97] -=2;
map['v'-97]--;
map['n'-97]--;
ans += '7';
}
else if(map['e'-97] > 0 && map['i'-97] >0 && map['g'-97] > 0 && map['h'-97] > 0 && map['t'-97] > 0)
{
map['e'-97]--;
map['i'-97]--;
map['g'-97]--;
map['h'-97]--;
map['t'-97]--;
ans += '8';
}
else if(map['n'-97] > 1 && map['i'-97] > 0 && map['e'-97] > 0)
{
map['n'-97]-=2;
map['i'-97]--;
map['e'-97] --;
ans += '9';
}
cout << ans<< "ans & o" << map['o'-97] << endl;
}
return ans;
}
};
'Algorithm' 카테고리의 다른 글
[백준] 1427. 소트인사이트 (C++) (51) | 2022.01.25 |
---|---|
[백준] 11656. 접미사 배열 (C++) (12) | 2022.01.25 |
[백준] 숫자놀이 C++ (19) | 2022.01.25 |
[백준] 10814. 나이순 정렬 (C++) (5) | 2022.01.24 |
[백준] 1431. 시리얼 번호 (C++) (4) | 2022.01.23 |