leetcode 423. Reconstruct Original Digits from English

Algorithm|2022. 1. 27. 20:54
반응형

 

 

Reconstruct Original Digits from English - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

문제점 : 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++)  (38) 2022.01.25
[백준] 11656. 접미사 배열 (C++)  (9) 2022.01.25
[백준] 숫자놀이 C++  (16) 2022.01.25
[백준] 10814. 나이순 정렬 (C++)  (3) 2022.01.24
[백준] 1431. 시리얼 번호 (C++)  (4) 2022.01.23

댓글()