์ง์์ ๋ฃ๊ณ ์๋ฅ๋ง๊ฐ ๋ฉฐ์น ๋ค, ์ด๋ฉ์ผ๋ก ์ฝํ ๋งํฌ๊ฐ ๋ ์์๋ค.
์ฒ์์ ํค๋ฉจ๋๋ฐ ๊ทธ๋ฅ ์ด๋ฉ์ผ ๋ด์ฉ ์ค์ Start Test ๋ฒํผ ๋๋ฅด๋ฉด ๋ฐ๋ก ์์ํ ์ ์๋๊ฑฐ์๋ค!
๊ทธ๊ฒ๋ ๋ชจ๋ฅด๊ณ ...ํด์ปค๋ญํฌ ํ์๊ฐ์ ํ ๋ป.ใ ใ
๊ทธ๋ฆฌ๊ณ ์๊ฐ๋ณด๋ค..์ด๋ ค์ ๋ค
์ด 5๋ฌธ์ , ์์ ์๊ฐ์ 6์๊ฐ์ธ๋ฐ ๋ 3์๊ฐ ์ ๋๋ง ํ๋ค.
์ผ๋จ 5๋ฌธ์ ๋ค ๊ฑด๋๋ ค๋ณด๊ธด ํ๋๋ฐ, ํ ์คํธ ์ผ์ด์ค๊ฐ ์์ฒญ ๋ง๊ณ ๋ฐฉ๋ํด์
๋ชจ๋ ํ ์คํธ์ผ์ด์ค๋ฅผ ํต๊ณผํ์ง ๋ชปํ ๋ฌธ์ ๋ ์์.
๋ญ ์ด์จ๋ ์ด ๊ธ ๋ณด๋ฌ์ค์ ๋ถ๋ค์ ๋ฌธ์ ๊ฐ ๊ถ๊ธํด์ ์ค์ จ์ํ ๋!
๋ช๋ฌธ์ ๋ณด์ฌ๋๋ ค์ผ์ฃ ๐
์ฐธ๊ณ ๋ก ๋ฌธ์ ๊ฐ ๋ชจ๋ ์์ด๊ณ , ๋ฌธ์ ๋ณต์ฌ๋ฅผ ๋ชปํด์.. ๋ฒ์ญ๊ธฐ์ ๋ฃ๊ณ ๋๋ฆฌ์ง๋ ๋ชปํ๋ค.
ํฐ์ผ๋ก ์ฌ์ง์ฐ์ด์ ํํ๊ณ ์ด๋ฏธ์ง๋ฒ์ญํ๋ ๋ฐฉ๋ฒ์ด ์๊ธด ํจ
๊ทธ๋ฆฌ๊ณ ๋ฐฑ์ค์ฒ๋ผ ์ ์ถ๋ ฅ ๋ชจ๋ ๊ตฌํํ๋ ๊ฒ ์๋๋ผ, ํ๋ก๊ทธ๋๋จธ์ค ๋ฌธ์ ๋ ๋น์ทํ๊ฒ ํจ์๋ง ๊ตฌํํ๋ฉด ๋๊ณ
์ ๋ ํญ์ ๊ทธ๋ฌ๋ฏ์ด c++ 14 ๋ก ํ์์ต๋๋ค~
1๋ฒ ๋ฌธ์
๋ฌธ์์ด, ๋ฒกํฐ๋ฅผ ์ฌ์ฉํด์ ํธ๋ ์ ๋๊ทธ๋จ ๋ฌธ์ ์ด๋ค.
์ฒ์์๋ ์ฃผ์์ฒ๋ผ find๋ก ํ๋ํ๋ ๋น๊ตํ๋๋ฐ ๊ณ์ ํ ์คํธ์ผ์ด์ค ํต๊ณผ ๋ชปํ๋๊ฒ ์์ด์ ๊ฐ์์์ด์ผํ๋ ๊ณ ๋ฏผํ๋ค
ํ์ฐธ ๋ค์ ์ ๋ ฌํด์ ํ๋ฒ์ ๋น๊ตํ๋ฉด ๋๋๊ฑธ ๋ ์ฌ๋ ค์.. ํธ๋๋ฐ์ ์ค๋ ๊ฑธ๋ฆผ ํํ
๋์ ํ์ด
int getGroupedAnagrams(vector<string> words) {
int size = words.size();
for(int i=0; i<words.size(); ++i){
string tmp = words[i];
for(int j=i+1; j<words.size(); ++j){
string tmp2 = words[j];
int cnt = 0;
if(tmp.length()==tmp2.length()){ // ๊ธธ์ด๊ฐ ๊ฐ์ ๊ฒฝ์ฐ ๋น๊ต ์์
//cout << i << " "<< j << " ๊ธธ์ด์ผ์น\\n";
sort(tmp.begin(), tmp.end());
sort(tmp2.begin(), tmp2.end());
if(tmp == tmp2){
size--;
words.erase(words.begin()+j);
j--;
}
// for(int k=0; k<tmp.length(); ++k){
// if(tmp2.find(tmp[k]) != string::npos){
// cnt++;
// }
// else break;
// }
// if(cnt == tmp.length()) {
// size--;
// words.erase(words.begin() + j);
// j--;
// }
}
}
}
return size;
}
2๋ฒ ๋ฌธ์
์ ํ์ ์ธ DP ๋ฌธ์ ์๋ค. (Dynamic programming)
์์ ์ ๋ค์ด๋ด๋ฏน ํ๋ก๊ทธ๋๋ฐ ์ ํ ์ตํ๋ค๊ณ ๋ฐฑ์ค์์ ๊ทธ ์ ํ๋ง ๋ชฐ์์ ํผ ์ ์ด ์๋๋ฐ,
๊ทธ๊ฑฐ ๋๋ถ์ ์ฝ๊ฒ ํ์๋ค!
dp๋ ์๋ max ๊ตฌํ๋๊ฒ ๋ง๋๋ฐ ์ด ๋ฌธ์ ๋ min์ ๊ตฌํ๋ ์ ์ ์ ์!
๋์ ํ์ด
int maxEnergy(vector<vector<int>> mat) {
for(int i=mat.size()-1; i>0; --i){
for(int j=0; j<mat[0].size(); ++j){
if(j==0) mat[i-1][j] += min({mat[i][j], mat[i][j + 1]});
else if(j==mat[0].size()-1) mat[i-1][j] += min({mat[i][j], mat[i][j - 1]});
else mat[i-1][j] += min({mat[i][j], mat[i][j + 1],mat[i][j - 1]});
}
}
for(int i=0; i<4; ++i){
for(int j=0; j<4; ++j){
cout << mat[i][j] << " ";
}
cout << "\\n";
}
int a = *min_element(mat[0].begin(), mat[0].end());
return 100-a;
}
์จ๋ ๋๋ต ์ด๋ฐ ๋ฌธ์ ๋ค์ด ๋์จ๋ค๋ ๋๋์ผ๋ก ๋ด์ฃผ์ธ์
๋ชจ๋ ๊ฐ๋ฐ์ ์ง๋ง์๋ค ํ์ดํ !
๐ช