영어 끝말잇기 - 프로그래머스

 

프로그래머스

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

programmers.co.kr

풀이 방법

1. 같은 단어를 말하는지 검사하기 위해 string을 Key, int를 Value로 가지는 map형을 선언

2. 첫 단어를 삽입하고 m[words[i]]++해준다.

3. 이후부터는 앞의 단어의 끝 문자와 현재 단어의 첫 문자가 다르거나, m[words[i]]가 1이면 해당 순서의 번호와 차례를  리턴한다.

4. 위의 조건에 만족하지 않는다면 \m[words[i]]++을 하고 계속해서 반복한다.

5. 만약 탈락자가 생기지 않는다면 {0, 0}을 리턴

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

using namespace std;

vector<int> solution(int n, vector<string> words) {
    map<string, int> m;
    
    for(int i = 0; i < words.size(); i++) {
        if(i > 0) {
            if(words[i].front() != words[i-1].back() || m[words[i]])
                return {i % n + 1, i / n + 1};
        }
        m[words[i]]++;
    }

    return {0,0};
}

'프로그래머스 > 2레벨' 카테고리의 다른 글

N개의 최소공배수/C++  (0) 2023.01.10
구명보트/C++  (1) 2023.01.10
카펫/C++  (0) 2023.01.06
짝지어 제거하기/C++  (0) 2023.01.06
다음 큰 숫자/C++  (0) 2023.01.06

+ Recent posts