본문 바로가기
알고리즘/c++ 프로그래머스

[프로그래머스] 영어 끝말잇기 c++

by 말린밴댕이_공부 2023. 5. 6.
반응형

문제 링크

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

 

프로그래머스

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

programmers.co.kr

 

코드 및 풀이

보통 간단하게 생각을 하고 효율성이 맞지 않는다면 고치는 편인데 

전꺼의 끝과 현재의 시작이 같지 않다면 return

그리고 여태 한것의 문장이 있다면 return을 하는 형식으로 생각하고 짰더니 바로 통과하였습니다.

/*
영어 끝말잇기

그냥 전꺼 끝 단어랑 처음 시작 단어를 비교해서 다르다면 리턴

그리고 vector<string> words에 있는 것을 돌며 서로 같지 않으면 리턴

*/
#include <string>
#include <vector>
#include <iostream>

using namespace std;

vector<int> solution(int n, vector<string> words) {
    vector<int> answer;
    int turn = 0;
   
    for(int i = 1; i < words.size() ;i++){
        if(words[i][0] != words[i - 1].back()){
            answer.push_back(i % n + 1);
            answer.push_back((i / n) + 1);
            return answer;
        }  
        for(int j = 0; j < i;j++){
            if(words[i] == words[j]){
                answer.push_back(i % n + 1);
                answer.push_back((i / n) + 1);
                return answer;
            }
        }
    }
   
    answer.push_back(0);
    answer.push_back(0);
    return answer;
}
반응형

댓글