[ํ๋ก๊ทธ๋๋จธ์ค] ์ํด๋ฆฌ ์ฑ๋ฆฐ์ง 4์ฃผ ์ฐจ (javascript)
์ฌ๋ฌ๋ถ๋ค์ ์ด ๋ฌธ์ ์ ์ด๋ป๊ฒ ์ ๊ทผํ ๊ฒ์ธ์ง ์๊ฐํด๋ณด์ธ์!
๋ฌธ์ ์ค๋ช
๊ฐ๋ฐ์๊ฐ ์ฌ์ฉํ๋ ์ธ์ด์ ์ธ์ด ์ ํธ๋๋ฅผ ์ ๋ ฅํ๋ฉด ๊ทธ์ ๋ง๋ ์ง์ ๊ตฐ์ ์ถ์ฒํด์ฃผ๋ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๋ฐํ๋ ค๊ณ ํฉ๋๋ค.
์๋ ํ๋ 5๊ฐ ์ง์ ๊ตฐ ๋ณ๋ก ๋ง์ด ์ฌ์ฉํ๋ 5๊ฐ ์ธ์ด์ ์ง์ ๊ตฐ ์ธ์ด ์ ์๋ฅผ ๋ถ์ฌํ ํ์ ๋๋ค.
์ ์ SI CONTENTS HARDWARE PORTAL GAME
5 | JAVA | JAVASCRIPT | C | JAVA | C++ |
4 | JAVASCRIPT | JAVA | C++ | JAVASCRIPT | C# |
3 | SQL | PYTHON | PYTHON | PYTHON | JAVASCRIPT |
2 | PYTHON | SQL | JAVA | KOTLIN | C |
1 | C# | C++ | JAVASCRIPT | PHP | JAVA |
์๋ฅผ ๋ค๋ฉด, SQL์ SI ์ง์ ๊ตฐ ์ธ์ด ์ ์๋ 3์ ์ด์ง๋ง CONTENTS ์ง์ ๊ตฐ ์ธ์ด ์ ์๋ 2์ ์ ๋๋ค. SQL์ HARDWARE, PORTAL, GAME ์ง์ ๊ตฐ ์ธ์ด ์ ์๋ 0์ ์ ๋๋ค.
์ง์ ๊ตฐ ์ธ์ด ์ ์๋ฅผ ์ ๋ฆฌํ ๋ฌธ์์ด ๋ฐฐ์ด table, ๊ฐ๋ฐ์๊ฐ ์ฌ์ฉํ๋ ์ธ์ด๋ฅผ ๋ด์ ๋ฌธ์์ด ๋ฐฐ์ด languages, ์ธ์ด ์ ํธ๋๋ฅผ ๋ด์ ์ ์ ๋ฐฐ์ด preference๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ๊ฐ๋ฐ์๊ฐ ์ฌ์ฉํ๋ ์ธ์ด์ ์ธ์ด ์ ํธ๋ x ์ง์ ๊ตฐ ์ธ์ด ์ ์์ ์ดํฉ์ด ๊ฐ์ฅ ๋์ ์ง์ ๊ตฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ดํฉ์ด ๊ฐ์ ์ง์ ๊ตฐ์ด ์ฌ๋ฌ ๊ฐ์ผ ๊ฒฝ์ฐ, ์ด๋ฆ์ด ์ฌ์ ์์ผ๋ก ๊ฐ์ฅ ๋น ๋ฅธ ์ง์ ๊ตฐ์ return ํด์ฃผ์ธ์.
์ ํ์ฌํญ
- table์ ๊ธธ์ด = 5
- table์ ์์๋ "์ง์ ๊ตฐ 5์ ์ธ์ด 4์ ์ธ์ด 3์ ์ธ์ด 2์ ์ธ์ด 1์ ์ธ์ด"ํ์์ ๋ฌธ์์ด์ ๋๋ค. ์ง์ ๊ตฐ, 5์ ์ธ์ด, 4์ธ์ด, 3์ ์ธ์ด, 2์ ์ธ์ด, 1์ ์ธ์ด๋ ํ๋์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ์์ต๋๋ค.
- table์ ๋ชจ๋ ํ ์คํธ์ผ์ด์ค์์ ๋์ผํฉ๋๋ค.
- 1 ≤ languages์ ๊ธธ์ด ≤ 9
- languages์ ์์๋ "JAVA", "JAVASCRIPT", "C", "C++" ,"C#" , "SQL", "PYTHON", "KOTLIN", "PHP" ์ค ํ ๊ฐ ์ด์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- languages์ ์์๋ ์ค๋ณต๋์ง ์์ต๋๋ค.
- preference์ ๊ธธ์ด = languages์ ๊ธธ์ด
- 1 ≤ preference์ ์์ ≤ 10
- preference์ i๋ฒ์งธ ์์๋ languages์ i๋ฒ์งธ ์์์ ์ธ์ด ์ ํธ๋์ ๋๋ค.
- return ํ ๋ฌธ์์ด์ "SI", "CONTENTS", "HARDWARE", "PORTAL", "GAME" ์ค ํ๋์ ๋๋ค.
์ ์ถ๋ ฅ ์
tablelanguagespreferenceresult
["SI JAVA JAVASCRIPT SQL PYTHON C#", "CONTENTS JAVASCRIPT JAVA PYTHON SQL C++", "HARDWARE C C++ PYTHON JAVA JAVASCRIPT", "PORTAL JAVA JAVASCRIPT PYTHON KOTLIN PHP", "GAME C++ C# JAVASCRIPT C JAVA"] | ["PYTHON", "C++", "SQL"] | [7, 5, 5] | "HARDWARE" |
["SI JAVA JAVASCRIPT SQL PYTHON C#", "CONTENTS JAVASCRIPT JAVA PYTHON SQL C++", "HARDWARE C C++ PYTHON JAVA JAVASCRIPT", "PORTAL JAVA JAVASCRIPT PYTHON KOTLIN PHP", "GAME C++ C# JAVASCRIPT C JAVA"] | ["JAVA", "JAVASCRIPT"] | [7, 5] | "PORTAL" |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
๊ฐ ์ง์ ๊ตฐ ๋ณ๋ก ์ ์๋ฅผ ๊ณ์ฐํด๋ณด๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
์๋ ์ฌ์ง์ ๊ฐ๋ฐ์ ์ธ์ด ์ ํธ๋ ๋ํ๋ธ ํ์ ๋๋ค.
์๋ ์ฌ์ง์ ๊ฐ๋ฐ์๊ฐ ์ ํธํ๋ ์ธ์ด์ ์ง์ ๊ตฐ ์ธ์ด ์ ์๋ฅผ ๋ํ๋ธ ํ์ ๋๋ค.
๋ฐ๋ผ์ ์ ์ ์ดํฉ์ด 41๋ก ๊ฐ์ฅ ๋์ "HARDWARE"๋ฅผ return ํด์ผ ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
๊ฐ ์ง์ ๊ตฐ ๋ณ๋ก ์ ์๋ฅผ ๊ณ์ฐํด๋ณด๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
์๋ ์ฌ์ง์ ๊ฐ๋ฐ์ ์ธ์ด ์ ํธ๋ ๋ํ๋ธ ํ์ ๋๋ค.
์๋ ์ฌ์ง์ ๊ฐ๋ฐ์๊ฐ ์ ํธํ๋ ์ธ์ด์ ์ง์ ๊ตฐ ์ธ์ด ์ ์๋ฅผ ๋ํ๋ธ ํ์ ๋๋ค.
์ ์ ์ดํฉ์ด 55๋ก ๊ฐ์ฅ ๋์ ์ง์
๊ตฐ์ "SI" ์ "PORTAL"์
๋๋ค.
๋ฐ๋ผ์ ์ฌ์ ์์ผ๋ก ๋จผ์ ์ค๋ "PORTAL"์ return ํด์ผ ํฉ๋๋ค.
์ด๋ฒ ์ํด๋ฆฌ ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ํ์ด๊ณผ์ ์ ์๊ฐํด๋ดค๋ค.
1. ์ ๊ณต๋ table์ 2์ฐจ์ ๋ฐฐ์ด๋ก ๋ณํ
2. ๋ณํ ํ ์ ๊ณต๋ ์ธ์ด์ ์ ์๋ฅผ ๊ฐ ํฐ ๋ฐฐ์ด๋ณ๋ก ๊ณ์ฐ ๋ฐ ๋ฐํํ์ฌ ๋ฐฐ์ด์ push
3. ๋ฐฐ์ด์ ์ ์ฅํ ํ ๊ฐ์ ๋ง๋ table์ ์ง์ ๊ตฐ์ ์๋ก์ด ๋ฐฐ์ด์ push
4. ์๋ก์ด ๋ฐฐ์ด์ ์ฌ์ ๋ณ๋ก ์ ๋ ฌ ํ ๋งจ ์ฒซ ๊ฐ return
function solution(table, languages, preference) {
let arr = [];
for(let i = 0; i < table.length; i++) arr.push(table[i].split(" "));
let result = [];
let count = 0;
for(let i = 0; i < arr.length; i++){
for(let j = 0; j < languages.length; j++){
if(arr[i].includes(languages[j])){
count += (arr[i].length - arr[i].indexOf(languages[j])) * preference[j];
}
}
result.push(count);
count = 0;
}
let answer = [];
for(let i = 0; i < result.length; i++){
if(Math.max(...result) === result[i]){
answer.push(arr[i][0]);
}
}
answer.sort();
return answer[0];
}
๊ฐ๋จํ ๋ฌธ์ ๋ผ ๋ค๋ฅธ ์ฌ๋๋ค๋ ์ฝ๊ฒ ํ์๊ฒ ๋ค ์๊ฐ ํ์ง๋ง
๋ค๋ฅธ ์ฌ๋๋ค์ ํ์ด๋ ์ ๋ง ๊ฐ๋ช ๊น์ด ๋ช ๋ฒ์ด๊ณ ๋น๊ตํ๋ค ใ ๋ ์ด์ฌํ ํด์ผ๊ฒ ๋ค!