-
프로그래머스 - 영어 끝말잇기 [C++]문제 풀이/프로그래머스 2023. 8. 22. 01:24반응형
이 문제는 구현 문제이다. 일단 words 를 기준으로 완전 탐색을 하는데 words의 최대 길이가 100밖에 안되므로 시간 초과 걱정은 없다. 또한 문제에서 나온 규칙에서 중요한 것은 3, 4인데, 5는 단어의 길이가 최소 2이므로 애초에 위반할 수 없기 때문이다. words에 대해 for문을 돌리고, 3번과 4번 규칙을 만족하지 않는 경우 바로 break하고 정답을 출력하면 쉽게 풀 수 있다.
#include <string> #include <vector> #include <iostream> #include <map> using namespace std; map<string, int> mp; vector<int> solution(int n, vector<string> words) { vector<int> answer; int wordIndex = 0; int turn = 1; int peopleIndex = 1; string last = ""; int answerPeople = 0; int answerTurn = 0; for (string& word : words) { if (last != "") { // 3번 조건 if (last.back() != word[0]) { answerPeople = peopleIndex; answerTurn = turn; break; } else { last = word; } } else { last = word; } if (mp[word] > 0) { // 4번 조건 answerPeople = peopleIndex; answerTurn = turn; break; } else { mp[word]++; } // index check peopleIndex++; if (peopleIndex > n) { peopleIndex = 1; turn++; } } answer.push_back(answerPeople); answer.push_back(answerTurn); return answer; }
반응형'문제 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 예상 대진표 [C++] (0) 2023.08.22 프로그래머스 - 점프와 순간 이동 [C++] (0) 2023.08.22 프로그래머스 - 짝지어 제거하기 [C++] (0) 2023.08.22 프로그래머스 - 다음 큰 숫자 [C++] (0) 2023.08.22 프로그래머스 - 피보나치 수 [C++] (0) 2023.08.22