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

[프로그래머스 C++] 모스부호 (1)

AKI(JUNI) 2024. 3. 11. 23:13

◈ 문제 설명


◈ 문제 설명 링크
코딩테스트 연습 - 모스부호 (1) | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

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

programmers.co.kr


◈ 작성 코드

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

using namespace std;

string solution(string letter) 
{
    string answer = "";
    string ace = "";
    vector<vector<string>> morse = {{".-","a"},{"-...","b"},{"-.-.","c"},{"-..","d"},{".","e"},{"..-.","f"},
{"--.","g"},{"....","h"},{"..","i"},{".---","j"},{"-.-","k"},{".-..","l"},
{"--","m"},{"-.","n"},{"---","o"},{".--.","p"},{"--.-","q"},{".-.","r"},
{"...","s"},{"-","t"},{"..-","u"},{"...-","v"},{".--","w"},{"-..-","x"},
{"-.--","y"},{"--..","z"}};
    
    for(int i = 0; i < letter.size(); i++)
    {
        if(letter[i] == ' ')
        {
            for(int j = 0; j < morse.size(); j++)
            {
                if(ace == morse[j][0])
                {
                    answer += morse[j][1];
                    ace = "";
                }
            }
        }
        else
        {
            ace += letter[i];
        }
    }
    
    for(int i = 0; i < morse.size(); i++)
    {
        if(ace == morse[i][0])
        {
            answer += morse[i][1];
        }
    }

    return answer;
}