[프로그래머스 C++]/LEVEL 0

[프로그래머스 C++] 영어가 싫어요

AKI(JUNI) 2024. 2. 8. 23:16

◈ 문제 설명


◈ 문제 설명 링크

코딩테스트 연습 - 영어가 싫어요 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


◈ 작성 코드

#include <string>
#include <vector>
#include <map>

using namespace std;

long long solution(string numbers) 
{
    long long answer = 0;
    for(int i = 0; i < numbers.size(); i++)
    {
        int ch = 0;
        
        if(numbers[i] == 'o')
        {
            ch = 1;
            i += 2;
        }
        else if(numbers[i] == 't')
        {
            if(numbers[i + 1] == 'w')
            {
                ch = 2;
                i += 2;
            }
            else
            {
                ch = 3;
                i += 4;
            }
        }
        else if(numbers[i] == 'f')
        {
            if(numbers[i + 1] == 'o')
            {
                ch = 4;
                i += 3;
            }
            else
            {
                ch = 5;
                i += 3;
            }
        }
        else if(numbers[i] == 's')
        {
            if(numbers[i + 1] == 'i')
            {
                ch = 6;
                i += 2;
            }
            else
            {
                ch = 7;
                i += 4;
            }
        }
        else if(numbers[i] == 'e')
        {
            ch = 8;
            i += 4;
        }
        else if(numbers[i] == 'n')
        {
            ch = 9;
            i += 3;
        }
        else
        {
            ch = 0;
            i += 3;
        }
        
        answer = answer * 10 + ch;
    }
    
    return answer;
}