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

문제링크

코드 설명

기본적인 구현 문제라고 생각했다. 처음에는 n만큼 나눠서 생각하자고 했는데 예를 몇가지 해봤을때 규칙이 안생겨서 전부 대입해서 찾으려 하였다.

1. 중복이있는지
2. 끝문자와 다음 첫문자가 같은지

1,2를 전부 flag로 표현할수 있다.

제출후 다른사람 코드를 참고하였을때, 해쉬맵으로 푼사람도 많은것 같다.

소스 코드

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

using namespace std;

vector<int> solution(int n, vector<string> words) {
    vector<int> answer;
    int flag = 0;
    int t = words.size();
    int k = 0;
    for (int i = 1; i < t; i++) {
        string a1 = words[i - 1];
        string a2 = words[i];

        for (int j = 0; j < i; j++) {
            if (words[j] == words[i]) {
                flag = 1;

                break;
            }
        }


        int b1 = a1.size();

        if (a1[b1 - 1] != a2[0]) {
            flag = 1;
        }



        if (flag == 1) {
            answer.push_back(i%n + 1);
            answer.push_back(i/n + 1);
            return answer;
        }
    }
        
            answer.push_back(0);
            answer.push_back(0);
            return answer;
        
    }

좋은 웹페이지 즐겨찾기