- Published on
๐ ๏ธ[ํ๋ก๊ทธ๋๋จธ์ค]-๋ฐฉ๊ธ ๊ทธ ๊ณก
๐๋ฌธ์ ์ค๋ช
๋ผ๋์ค๋ฅผ ์์ฃผ ๋ฃ๋ ๋ค์ค๋ ๋ผ๋์ค์์ ๋ฐฉ๊ธ ๋์๋ ์์ ์ด ๋ฌด์จ ์์ ์ธ์ง ๊ถ๊ธํด์ง ๋๊ฐ ๋ง๋ค. ๊ทธ๋ด ๋ ๋ค์ค๋ ๋ค์ ํฌํธ์ '๋ฐฉ๊ธ๊ทธ๊ณก' ์๋น์ค๋ฅผ ์ด์ฉํ๊ณค ํ๋ค. ๋ฐฉ๊ธ๊ทธ๊ณก์์๋ TV, ๋ผ๋์ค ๋ฑ์์ ๋์จ ์์ ์ ๊ดํด ์ ๋ชฉ ๋ฑ์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์๋น์ค์ด๋ค.
๋ค์ค๋ ์์ ์ด ๊ธฐ์ตํ ๋ฉ๋ก๋๋ฅผ ๊ฐ์ง๊ณ ๋ฐฉ๊ธ๊ทธ๊ณก์ ์ด์ฉํด ์์ ์ ์ฐพ๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ผ๋์ค ๋ฐฉ์ก์์๋ ํ ์์ ์ ๋ฐ๋ณตํด์ ์ฌ์ํ ๋๋ ์์ด์ ๋ค์ค๊ฐ ๊ธฐ์ตํ๊ณ ์๋ ๋ฉ๋ก๋๋ ์์ ๋๋ถ๋ถ๊ณผ ์ฒ์ ๋ถ๋ถ์ด ์ด์ด์ ์ฌ์๋ ๋ฉ๋ก๋์ผ ์๋ ์๋ค. ๋ฐ๋๋ก, ํ ์์ ์ ์ค๊ฐ์ ๋์ ๊ฒฝ์ฐ ์๋ณธ ์์ ์๋ ๋ค์ค๊ฐ ๊ธฐ์ตํ ๋ฉ๋ก๋๊ฐ ๋ค์ด์๋ค ํด๋ ๊ทธ ๊ณก์ด ๋ค์ค๊ฐ ๋ค์ ๊ณก์ด ์๋ ์๋ ์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ค์ค๋ ๊ธฐ์ตํ ๋ฉ๋ก๋๋ฅผ ์ฌ์ ์๊ฐ๊ณผ ์ ๊ณต๋ ์ ๋ณด๋ฅผ ์ง์ ๋ณด๋ฉด์ ๋น๊ตํ๋ ค๊ณ ํ๋ค. ๋ค์๊ณผ ๊ฐ์ ๊ฐ์ ์ ํ ๋ ๋ค์ค๊ฐ ์ฐพ์ผ๋ ค๋ ์์ ์ ์ ๋ชฉ์ ๊ตฌํ์ฌ๋ผ.
๋ฐฉ๊ธ๊ทธ๊ณก ์๋น์ค์์๋ ์์ ์ ๋ชฉ, ์ฌ์์ด ์์๋๊ณ ๋๋ ์๊ฐ, ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ค. ๋ค์ค๊ฐ ๊ธฐ์ตํ ๋ฉ๋ก๋์ ์ ๋ณด์ ์ฌ์ฉ๋๋ ์์ C, C#, D, D#, E, F, F#, G, G#, A, A#, B 12๊ฐ์ด๋ค. ๊ฐ ์์ 1๋ถ์ 1๊ฐ์ฉ ์ฌ์๋๋ค. ์์ ์ ๋ฐ๋์ ์ฒ์๋ถํฐ ์ฌ์๋๋ฉฐ ์์ ๊ธธ์ด๋ณด๋ค ์ฌ์๋ ์๊ฐ์ด ๊ธธ ๋๋ ์์ ์ด ๋๊น ์์ด ์ฒ์๋ถํฐ ๋ฐ๋ณตํด์ ์ฌ์๋๋ค. ์์ ๊ธธ์ด๋ณด๋ค ์ฌ์๋ ์๊ฐ์ด ์งง์ ๋๋ ์ฒ์๋ถํฐ ์ฌ์ ์๊ฐ๋งํผ๋ง ์ฌ์๋๋ค. ์์ ์ด 00:00๋ฅผ ๋๊ฒจ์๊น์ง ์ฌ์๋๋ ์ผ์ ์๋ค. ์กฐ๊ฑด์ด ์ผ์นํ๋ ์์ ์ด ์ฌ๋ฌ ๊ฐ์ผ ๋์๋ ๋ผ๋์ค์์ ์ฌ์๋ ์๊ฐ์ด ์ ์ผ ๊ธด ์์ ์ ๋ชฉ์ ๋ฐํํ๋ค. ์ฌ์๋ ์๊ฐ๋ ๊ฐ์ ๊ฒฝ์ฐ ๋จผ์ ์ ๋ ฅ๋ ์์ ์ ๋ชฉ์ ๋ฐํํ๋ค. ์กฐ๊ฑด์ด ์ผ์นํ๋ ์์ ์ด ์์ ๋์๋ โ(None)โ์ ๋ฐํํ๋ค.
โ๏ธ๋ฌธ์ ํ์ด
๊ตฌ์กฐ์ฒด๋ฅผ ํ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํ์๋ค. ๊ทธ๋ฌ๋ ์ฌ์ค ๊ตฌ์กฐ์ฒด ์ฌ์ฉ์ด ํ์ด๋ฒ์ด ๋๊ธฐ๋ณด๋ค๋ ๋ช๋ช ์ฃผ์์ฌํญ์ ์ผ๋์ ๋๊ณ ํธ๋๊ฒ์ด ์ค์ํ๋ค. ํ์ด์ค ๋ง์ฃผํ ๋ช๋ช ํน์ด ๊ณ ๋ ค์ฌํญ์ ์์ฑํ์๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
- ์ฃผ์ด์ง ๋งค๊ฐ๋ณ์
musicinfos
์์ ๊ฐ์ ์ถ์ถํ ๋ ๋ฌธ์ ๊ฐ ์๋ค. - ์ฃผ์ด์ง ์ฝ๋๋ค ์ค ๋ฐ์ ์ฌ๋ฆผ
#
์ ์ฒ๋ฆฌํ ๋ ์ฃผ์๊ฐ ํ์ํ๋ค. - ๊ฐ์ธ์ ์ผ๋ก ๋ง๋ฅํธ๋ฆฐ ๊ณจ์น์ํ ๋ ๋ฌธ์ ์ฌํญ
- ๋ฌธ์์ด์ ์๋ผ ๊ตฌ์กฐ์ฒด์ ๋์
ํ๊ธฐ์ ์
temp
์ ์ ์ ๋ณด๊ดํ ๋ค ์ด๊ธฐํ ์์ผ์ค์ผํ๋ค. - ์ผ์นํ๋ ๋ชฉ๋ก์ด ์์๊ฒฝ์ฐ ์์ง ์๊ณ
(None)
์ ๋ฆฌํด ์์ผ์ผ ํ๋ค.
- ๋ฌธ์์ด์ ์๋ผ ๊ตฌ์กฐ์ฒด์ ๋์
ํ๊ธฐ์ ์
โจ๏ธํ์ด ์ฝ๋
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
struct song
{
int time;
string name;
string code;
bool answer = false;
};
string solution(string m, vector<string> musicinfos) {
string answer = "(None)";
song *list = new song[musicinfos.size()];
string nowm = "";
for(int i = 0; i < m.size(); i++) {
if(m[i+1] == '#'){
nowm += tolower(m[i]);
i++;
}
else {
nowm += m[i];
}
}
string temp;
for(int i = 0; i < musicinfos.size(); i++){
temp = "";
int starthour = stoi(musicinfos[i].substr(0, 2));
int endhour = stoi(musicinfos[i].substr(6, 2));
int startmin = stoi(musicinfos[i].substr(3, 2));
int endmin = stoi(musicinfos[i].substr(9, 2));
list[i].time = (endhour - starthour) * 60 + (endmin - startmin);
int current = musicinfos[i].std::string::find(",",6)+1;
int namelast = musicinfos[i].std::string::find(",",12);
int namelength = namelast - current;
list[i].name = musicinfos[i].substr(musicinfos[i].std::string::find(",",6)+1, namelength);
list[i].code = musicinfos[i].substr(musicinfos[i].std::string::find(",",12)+1);
int cycle = list[i].time;
for(int j = 0; j < cycle; j++){
if(list[i].code[(j%list[i].code.size())+1] == '#'){
temp += tolower(list[i].code[j % list[i].code.size()]);
j++;
cycle++;
}
else {
temp += list[i].code[j % list[i].code.size()];
}
}
list[i].code = temp;
if(list[i].code.find(nowm) != string::npos) {
list[i].answer = true;
}
}
int maxtime = 0;
int answerindex = 0;
for (int i = 0; i < musicinfos.size(); i++){
if(list[i].time > maxtime && list[i].answer == true) {
maxtime = list[i].time;
answerindex = i;
answer = list[answerindex].name;
}
}
return answer;
}
์ถ์ฒ : ํ๋ก๊ทธ๋๋จธ์ค 2018 ์นด์นด์ค ๋ฐฉ๊ธ ๊ทธ ๊ณก ์ถ์ฒ ๋ฌธ์