Algorithm/Programmers
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค - ์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌํ๊ธฐ
๊ฐ๋ฐ๊ฐ๊ตด๐ธ
2022. 9. 1. 00:18
[๋ฌธ์ ]
https://school.programmers.co.kr/learn/courses/30/lessons/118666
[ํ์ด]
์ด๊ธฐ ์ธํ
- type ๋ฐฐ์ด์ ์ ์ธํด, ๊ฐ๊ฐ์ ์ฑ๊ฒฉ ์ ํ์ ๋ฒํธ๋ฅผ ๋ถ์
- survey๊ฐ RT ํ์์ผ๋ก ๋ค์ด์ค๊ธฐ ๋๋ฌธ์ ์ฑ๊ฒฉ ์ ํ ๋ฌธ์๋ฅผ ํตํด index๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํ map์ ๋ง๋ฆ
- ์ ์๋ฅผ ์ ์ฅํ scroe๋ฐฐ์ด์ ์ ์ธ
ํ์ด ๊ณผ์
1. survey๋ฅผ ์ฐจ๋ก๋๋ก ์ํํ๋ฉฐ ์ ์๋ฅผ ๊ณ์ฐํฉ๋๋ค.
- ํ์ฌ ํ์ธ์ค์ธ ์ค๋ฌธ์ด AN ์ด๋ผ๋ฉด A์ N์ split ์ฐ์ฐ์ ํตํด ๋ฝ์๋
- ๋ง์ฝ ํ์ฌ ํ์ธ ์ค์ธ i๋ฒ์งธ ์ค๋ฌธ์ ์ ํ์ง choice[i]์ ๊ฐ์ด 4๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค๋ฉด, A์ score์ 4 - choice[i]๋ฅผ ๋ํจ
- ๋ง์ฝ ํ์ฌ ํ์ธ์ค์ธ i๋ฒ์งธ ์ค๋ฌธ์ ์ ํ์ง choice[i]์ ๊ฐ์ด 4๋ณด๋ค ํฌ๋๋ฉด, N์ score + choice[i] - 4๋ฅผ ๋ํจ
2. ๊ณ์ฐ๋ score๋ฅผ ํตํด ์ฐ์ ์์๊ฐ ๋์ ์ฑ๊ฒฉ ์ ํ ๋ฌธ์๋ฅผ answer์ ๋ํด์ฃผ์ด ๊ฒฐ๊ณผ๋ฅผ ๊ตฌํฉ๋๋ค.
[์ฝ๋]
function solution(survey, choices) {
var answer = '';
const map = new Map();
const type = ['R', 'T', 'C', 'F', 'J', 'M', 'A', 'N'];
type.map((i, idx) => {
map.set(i, idx);
});
const score = Array.from({length: 8}, () => 0);
for(let i=0;i<survey.length;i++) {
const [a, b] = survey[i].split("");
if(choices[i] <= 4) {
score[map.get(a)] += 4 - choices[i];
} else {
score[map.get(b)] += choices[i] - 4;
}
}
for(let i=0;i<type.length;i+=2) {
const [a, b] = [type[i], type[i+1]];
if(score[i] >= score[i+1]) {
answer += a;
} else {
answer += b;
}
}
return answer;
}