C++:: 프로그래머스 < 영어 끝말잇기 >

jahlee·2023년 7월 21일
0

프로그래머스_Lv.2

목록 보기
81/106
post-thumbnail

끝말잇기를 해서 탈락한 사람의 번호와 그사람이 몇번째 순서에 탈락했는지를 리턴해 주면 되는 문제이다. 주의할 점은 탈락하는 사람이 없을 수 도 있다는 점이다.

#include <string>
#include <vector>
#include <unordered_map>
#include <iostream>

using namespace std;

vector<int> solution(int n, vector<string> words) {
    vector<int> answer(2,0);
    unordered_map<string, bool> um;
    string prev = "";
    int order_idx = 0;
    bool failed = false;
    for(auto word : words) {
        if (um[word] || (prev != "" && prev.back() != word[0])) {
        	//중복단어 사용했거나, 끝말이 안이어졌으면
            failed = true;
            break ;
        }
        prev = word;
        um[word] = true;
        order_idx++;
    }
    if (failed) {
        answer[0] = (order_idx % n) + 1;
        answer[1] = order_idx / n + 1;
    }
    return answer;
}

0개의 댓글