에디의 우당탕탕 코딩공장

✨lv0_코딩테스트 입문_모스부호(1)

by 인턴 에디

https://school.programmers.co.kr/learn/courses/30/lessons/120838?language=cpp 

 

프로그래머스

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

programmers.co.kr

✔️ 유형 : STL(algorithm, string)

✔️ 문제 풀이: int형 변수를 to_string을 이용해 string으로 변환하여 쉽게 자릿수를 계산할 수 있다.

⬇️코드 보기

더보기
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

string solution(string letter) {
    string answer = "";
    
    vector<string> morse
    {
        ".-","-...","-.-.","-..",".","..-.",
        "--.","....","..",".---","-.-",".-..",
        "--","-.","---",".--.","--.-",".-.",
        "...","-","..-","...-",".--","-..-",
        "-.--","--.."
    }; //a = 97
    
    //공백에 따른 문자열 분리
    string space_delimiter = " ";
    vector<string> words{};

    size_t pos = 0;
    while ((pos = letter.find(space_delimiter)) != string::npos) {
        //find에 실패하면 string::npos가 값으로 나온다!
        words.push_back(letter.substr(0, pos));
        letter.erase(0, pos + space_delimiter.length());
    }
    words.push_back(letter);
    
    for(auto word : words)
    {
        int idx = find(morse.begin(), morse.end(), word) - morse.begin();
        answer += (idx + 97);
    }
    
    
    return answer;
}

블로그의 정보

에디의 우당탕탕 코딩 공장

인턴 에디

활동하기