본문 바로가기

Algorithm/프로그래머스

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

반응형

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

 

프로그래머스

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

programmers.co.kr

 


- 문제

  영어로 끝말잇기를 하는 문제다.

 


- 풀이

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

using namespace std;

vector<int> solution(int n, vector<string> words) {
    vector<int> answer;
    map<string,int> m;
    char before, now;
    m[words[0]]++;
    before = words[0][words[0].size()-1];
    for(int i = 1; i < words.size();i++){
        now = words[i][0];
        m[words[i]]++;
        if(before != now || m[words[i]] == 2){
            answer.push_back(i % n + 1);
            answer.push_back(i / n + 1);
            break;
        }

        before = words[i][words[i].size()-1];
    }
    if(answer.empty()){
        answer.push_back(0);
        answer.push_back(0);
    }

    return answer;
}

 

 

map으로 모든 단어를 저장하며 몇번 나왔는지 세어보고 이전 단어의 마지막 alphabet과 현재 단어의 첫번째 alphabet이 같은지 확인한다.

 

 

 

 

  


- 기억할 것!

 X

반응형