๋ฌธ์
์ฝ๋
#include <string>
#include <vector>
#include <map>
#include <iostream>
using namespace std;
vector<int> solution(int n, vector<string> words) {
vector<int> answer;
map<string,int> duplicate;
int cycle = 1;
char before_char = words[0].back();
duplicate[words[0]]++;
for(int i=1; i<words.size(); i++){
if(i%n==0) cycle++;
if(words[i].front()!=before_char){
answer.push_back((i%n)+1);
answer.push_back(cycle);
return answer;
}
if(duplicate[words[i]]!=0){
answer.push_back((i%n)+1);
answer.push_back(cycle);
return answer;
}
before_char = words[i].back();
duplicate[words[i]]++;
}
if(answer.size()==0){
answer.push_back(0);
answer.push_back(0);
}
return answer;
}
ํ์ด
๋ฌธ์ ๋ฅผ ๋จผ์ ์ค๋ช ํ์๋ฉด n๋ช ์ ์ฌ๋์ด ์๋จ์ด๋ก ๋๋ง์๊ธฐ๋ฅผ ์งํํ๋๋ฐ ๋๋ง์ ์ด์ด๊ฐ์ง ๋ชปํ๊ฑฐ๋ ์ด์ ์ ์ฌ์ฉํ๋ ๋จ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋๊ฒ ๋๊ณ ๊ทธ๋ ํ๋ฆฐ ์ฌ๋์ ๋ฒํธ์ ๋ช ๋ฒ์งธ ์ฌ์ดํด ๋ ํ๋ ธ๋์ง ์ถ๋ ฅํ๋ ๋ฌธ์ ์ ๋๋ค.
๋จ์ํ๊ฒ O(N)์๊ฐ ๋ณต์ก๋๋ก ์ด๋ฒ ๋จ์ด์ ์ฒซ ๊ธ์๊ฐ ์ด์ ๋จ์ด์ ๋ ๊ธ์์ ๋ง๋์ง ์กฐ๊ฑด๋ฌธ์ผ๋ก ํ๋ณํ์๊ณ , Map ํ ์ด๋ธ์ ์ฌ์ฉํ์ฌ ์ค๋ณต ํ๋จ์ ํ์ฌ ํด๋น ์กฐ๊ฑด์ ๊ฑธ๋ฆด ๊ฒฝ์ฐ ๋๋ง์๊ธฐ๊ฐ ๋๋ ๊ฒฝ์ฐ์ด๊ธฐ ๋๋ฌธ์ answer ๋ฒกํฐ์ ์ถ๊ฐํ๊ณ return ํ์ต๋๋ค. answer ๋ฒกํฐ์ ์ฌ์ด์ฆ๊ฐ 0 ์ธ ๊ฒฝ์ฐ๋ ์ ๋ถ ๋ค ์ฌ๋ฐ๋ฅด๊ฒ ๋๋ง์๊ธฐ๋ฅผ ์งํํ๊ธฐ ๋๋ฌธ์ ์๋ฌด๊ฒ๋ ๋ค์ด์์ง ์๋ ์ํ์ด๊ธฐ์ 0์ ์ง์ ์ฝ์ ํด์ฃผ์ด ์ถ๋ ฅํ์ต๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ํ๋ก๊ทธ๋๋จธ์ค(Programmers)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ฆฐํฐ(Level 2) (0) | 2022.03.23 |
---|---|
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ์ผ๊ฐ ๋ฌํฝ์ด(Level 2) (0) | 2022.03.14 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ํผ๋ก๋(Level 2) (0) | 2022.03.04 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ์ฝ์์ ๊ฐ์์ ๋ง์ (Level 1) (0) | 2022.02.13 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ํผ๋ณด๋์น ์( Level2) (0) | 2021.11.08 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์( Level1) (0) | 2021.11.08 |
๋๊ธ