본문 바로가기
전공공부/코딩테스트

(c++) 프로그래머스 "영어 끝말잇기"

by 시아나 2022. 4. 10.

https://programmers.co.kr/learn/courses/30/lessons/12981#

 

코딩테스트 연습 - 영어 끝말잇기

3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0]

programmers.co.kr


나의풀이

#include <string>
#include <vector>
#include <unordered_set>

using namespace std;

vector<int> solution(int n, vector<string> words) {
    vector<int> answer = { 0,0 };
    unordered_set<string> sets;
    sets.insert(words[0]);
    for (int i = 1; i < words.size(); i++) {
        if (sets.find(words[i]) != sets.end()) {
            answer[0] = ((i % n) + 1);
            answer[1] = (i / n + 1);
            return answer;
        }
        else if (words[i - 1][words[i - 1].size() - 1] != words[i][0]) {
            answer[0] = ((i % n) + 1);
            answer[1] = (i / n + 1);
            return answer;
        }
        sets.insert(words[i]);
    }
    return answer;
}