๐ ๋ฌธ์
๋๋ง์ ์นด์นด์ค ์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌ์ง๋ฅผ ๋ง๋ค๋ ค๊ณ ํฉ๋๋ค.
์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌ๋ ๋ค์๊ณผ ๊ฐ์ 4๊ฐ ์งํ๋ก ์ฑ๊ฒฉ ์ ํ์ ๊ตฌ๋ถํฉ๋๋ค. ์ฑ๊ฒฉ์ ๊ฐ ์งํ์์ ๋ ์ ํ ์ค ํ๋๋ก ๊ฒฐ์ ๋ฉ๋๋ค.
์งํ ๋ฒํธ ์ฑ๊ฒฉ ์ ํ
1๋ฒ ์งํ ๋ผ์ด์ธํ(R), ํ๋ธํ(T)
2๋ฒ ์งํ ์ฝํ(C), ํ๋ก๋ํ(F)
3๋ฒ ์งํ ์ ์ด์งํ(J), ๋ฌด์งํ(M)
4๋ฒ ์งํ ์ดํผ์นํ(A), ๋ค์คํ(N)
4๊ฐ์ ์งํ๊ฐ ์์ผ๋ฏ๋ก ์ฑ๊ฒฉ ์ ํ์ ์ด 16(=2 x 2 x 2 x 2)๊ฐ์ง๊ฐ ๋์ฌ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, "RFMN"์ด๋ "TCMA"์ ๊ฐ์ ์ฑ๊ฒฉ ์ ํ์ด ์์ต๋๋ค.
๊ฒ์ฌ์ง์๋ ์ด n๊ฐ์ ์ง๋ฌธ์ด ์๊ณ , ๊ฐ ์ง๋ฌธ์๋ ์๋์ ๊ฐ์ 7๊ฐ์ ์ ํ์ง๊ฐ ์์ต๋๋ค.
๋งค์ฐ ๋น๋์
๋น๋์
์ฝ๊ฐ ๋น๋์
๋ชจ๋ฅด๊ฒ ์
์ฝ๊ฐ ๋์
๋์
๋งค์ฐ ๋์
๊ฐ ์ง๋ฌธ์ 1๊ฐ์ง ์งํ๋ก ์ฑ๊ฒฉ ์ ํ ์ ์๋ฅผ ํ๋จํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์ด๋ค ํ ์ง๋ฌธ์์ 4๋ฒ ์งํ๋ก ์๋ ํ์ฒ๋ผ ์ ์๋ฅผ ๋งค๊ธธ ์ ์์ต๋๋ค.
์ ํ์ง ์ฑ๊ฒฉ ์ ํ ์ ์
๋งค์ฐ ๋น๋์ ๋ค์คํ 3์
๋น๋์ ๋ค์คํ 2์
์ฝ๊ฐ ๋น๋์ ๋ค์คํ 1์
๋ชจ๋ฅด๊ฒ ์ ์ด๋ค ์ฑ๊ฒฉ ์ ํ๋ ์ ์๋ฅผ ์ป์ง ์์ต๋๋ค
์ฝ๊ฐ ๋์ ์ดํผ์นํ 1์
๋์ ์ดํผ์นํ 2์
๋งค์ฐ ๋์ ์ดํผ์นํ 3์
์ด๋ ๊ฒ์ฌ์๊ฐ ์ง๋ฌธ์์ ์ฝ๊ฐ ๋์ ์ ํ์ง๋ฅผ ์ ํํ ๊ฒฝ์ฐ ์ดํผ์นํ(A) ์ฑ๊ฒฉ ์ ํ 1์ ์ ๋ฐ๊ฒ ๋ฉ๋๋ค. ๋ง์ฝ ๊ฒ์ฌ์๊ฐ ๋งค์ฐ ๋น๋์ ์ ํ์ง๋ฅผ ์ ํํ ๊ฒฝ์ฐ ๋ค์คํ(N) ์ฑ๊ฒฉ ์ ํ 3์ ์ ๋ฐ๊ฒ ๋ฉ๋๋ค.
์ ์์์ฒ๋ผ ๋ค์คํ์ด ๋น๋์, ์ดํผ์นํ์ด ๋์์ธ ๊ฒฝ์ฐ๋ง ์ฃผ์ด์ง์ง ์๊ณ , ์ง๋ฌธ์ ๋ฐ๋ผ ๋ค์คํ์ด ๋์, ์ดํผ์นํ์ด ๋น๋์์ธ ๊ฒฝ์ฐ๋ ์ฃผ์ด์ง ์ ์์ต๋๋ค.
ํ์ง๋ง ๊ฐ ์ ํ์ง๋ ๊ณ ์ ์ ์ธ ํฌ๊ธฐ์ ์ ์๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๋งค์ฐ ๋์๋ ๋งค์ฐ ๋น๋์ ์ ํ์ง๋ฅผ ์ ํํ๋ฉด 3์ ์ ์ป์ต๋๋ค.
๋์๋ ๋น๋์ ์ ํ์ง๋ฅผ ์ ํํ๋ฉด 2์ ์ ์ป์ต๋๋ค.
์ฝ๊ฐ ๋์๋ ์ฝ๊ฐ ๋น๋์ ์ ํ์ง๋ฅผ ์ ํํ๋ฉด 1์ ์ ์ป์ต๋๋ค.
๋ชจ๋ฅด๊ฒ ์ ์ ํ์ง๋ฅผ ์ ํํ๋ฉด ์ ์๋ฅผ ์ป์ง ์์ต๋๋ค.
๊ฒ์ฌ ๊ฒฐ๊ณผ๋ ๋ชจ๋ ์ง๋ฌธ์ ์ฑ๊ฒฉ ์ ํ ์ ์๋ฅผ ๋ํ์ฌ ๊ฐ ์งํ์์ ๋ ๋์ ์ ์๋ฅผ ๋ฐ์ ์ฑ๊ฒฉ ์ ํ์ด ๊ฒ์ฌ์์ ์ฑ๊ฒฉ ์ ํ์ด๋ผ๊ณ ํ๋จํฉ๋๋ค. ๋จ, ํ๋์ ์งํ์์ ๊ฐ ์ฑ๊ฒฉ ์ ํ ์ ์๊ฐ ๊ฐ์ผ๋ฉด, ๋ ์ฑ๊ฒฉ ์ ํ ์ค ์ฌ์ ์์ผ๋ก ๋น ๋ฅธ ์ฑ๊ฒฉ ์ ํ์ ๊ฒ์ฌ์์ ์ฑ๊ฒฉ ์ ํ์ด๋ผ๊ณ ํ๋จํฉ๋๋ค.
์ง๋ฌธ๋ง๋ค ํ๋จํ๋ ์งํ๋ฅผ ๋ด์ 1์ฐจ์ ๋ฌธ์์ด ๋ฐฐ์ด survey์ ๊ฒ์ฌ์๊ฐ ๊ฐ ์ง๋ฌธ๋ง๋ค ์ ํํ ์ ํ์ง๋ฅผ ๋ด์ 1์ฐจ์ ์ ์ ๋ฐฐ์ด choices๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ์ด๋, ๊ฒ์ฌ์์ ์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌ ๊ฒฐ๊ณผ๋ฅผ ์งํ ๋ฒํธ ์์๋๋ก return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
๐ ์ ํ์ฌํญ
1 ≤ survey์ ๊ธธ์ด ( = n) ≤ 1,000
survey์ ์์๋ "RT", "TR", "FC", "CF", "MJ", "JM", "AN", "NA" ์ค ํ๋์ ๋๋ค.
survey[i]์ ์ฒซ ๋ฒ์งธ ์บ๋ฆญํฐ๋ i+1๋ฒ ์ง๋ฌธ์ ๋น๋์ ๊ด๋ จ ์ ํ์ง๋ฅผ ์ ํํ๋ฉด ๋ฐ๋ ์ฑ๊ฒฉ ์ ํ์ ์๋ฏธํฉ๋๋ค.
survey[i]์ ๋ ๋ฒ์งธ ์บ๋ฆญํฐ๋ i+1๋ฒ ์ง๋ฌธ์ ๋์ ๊ด๋ จ ์ ํ์ง๋ฅผ ์ ํํ๋ฉด ๋ฐ๋ ์ฑ๊ฒฉ ์ ํ์ ์๋ฏธํฉ๋๋ค.
choices์ ๊ธธ์ด = survey์ ๊ธธ์ด
choices[i]๋ ๊ฒ์ฌ์๊ฐ ์ ํํ i+1๋ฒ์งธ ์ง๋ฌธ์ ์ ํ์ง๋ฅผ ์๋ฏธํฉ๋๋ค.
1 ≤ choices์ ์์ ≤ 7
choices ๋ป
1 ๋งค์ฐ ๋น๋์
2 ๋น๋์
3 ์ฝ๊ฐ ๋น๋์
4 ๋ชจ๋ฅด๊ฒ ์
5 ์ฝ๊ฐ ๋์
6 ๋์
7 ๋งค์ฐ ๋์
๐ ์ ์ถ๋ ฅ ์
survey choices result
["AN", "CF", "MJ", "RT", "NA"] [5, 3, 2, 7, 5] "TCMA"
["TR", "RT", "TR"] [7, 1, 3] "RCJA"
๐ ์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #2
1๋ฒ๋ถํฐ 3๋ฒ๊น์ง ์ง๋ฌธ์ ์ฑ๊ฒฉ ์ ํ ์ ์๋ฅผ ํฉ์น๋ฉด ์๋ ํ์ ๊ฐ์ต๋๋ค.
์งํ ๋ฒํธ ์ฑ๊ฒฉ ์ ํ ์ ์ ์ฑ๊ฒฉ ์ ํ ์ ์
1๋ฒ ์งํ ๋ผ์ด์ธํ(R) 6 ํ๋ธํ(T) 1
2๋ฒ ์งํ ์ฝํ(C) 0 ํ๋ก๋ํ(F) 0
3๋ฒ ์งํ ์ ์ด์งํ(J) 0 ๋ฌด์งํ(M) 0
4๋ฒ ์งํ ์ดํผ์นํ(A) 0 ๋ค์คํ(N) 0
1๋ฒ ์งํ๋ ํ๋ธํ(T)๋ณด๋ค ๋ผ์ด์ธํ(R)์ ์ ์๊ฐ ๋ ๋์ต๋๋ค. ๋ฐ๋ผ์ ์ฒซ ๋ฒ์งธ ์งํ์ ์ฑ๊ฒฉ ์ ํ์ R์ ๋๋ค.
ํ์ง๋ง, 2, 3, 4๋ฒ ์งํ๋ ๋ชจ๋ 0์ ์ผ๋ก ๋์ผํ ์ ์์ ๋๋ค. ๋ฐ๋ผ์ 2, 3, 4๋ฒ ์งํ์ ์ฑ๊ฒฉ ์ ํ์ ์ฌ์ ์์ผ๋ก ๋น ๋ฅธ C, J, A์ ๋๋ค.
๋ฐ๋ผ์ "RCJA"๋ฅผ return ํด์ผ ํฉ๋๋ค.
๐ง ํ์ด
function solution(survey, choices) {
let total_points = {"R": 0, "T": 0, "C": 0, "F": 0, "J": 0, "M": 0, "A": 0, "N": 0};
let answer = [];
survey.forEach((e, i) => {
let disagree_temp = e[0];
let agree_temp = e[1];
if (choices[i] > 4) {
total_points[agree_temp] += choices[i] - 4;
} else if (choices[i] < 4) {
total_points[disagree_temp] += 4 - choices[i];
}
})
if (total_points["R"] < total_points["T"]) {
answer.push("T");
} else {
answer.push("R");
}
if (total_points["C"] < total_points["F"]) {
answer.push("F");
} else {
answer.push("C");
}
if (total_points["J"] < total_points["M"]) {
answer.push("M");
} else {
answer.push("J");
}
if (total_points["A"] < total_points["N"]) {
answer.push("N");
} else {
answer.push("A");
}
return answer.join("");
}
๐ก ์๊ฒ ๋ ์
- forEach()์์ index๋ฅผ ์ ๊ทน ํ์ฉํ๋ฉด, index๊น์ง ๊บผ๋ด์ ํ์ฉํ ์ ์๋ค.
- ์ฒ์์๋ if๋ฌธ์ 4๊ฐ ์ฌ์ฉํ์ง ์๊ณ , for๋ฌธ์ ํตํด, object์ key ๊ฐ์ ๊บผ๋ด array๋ก ๋ง๋ค์ด, ๋ฐ๋ณต์ ํ๋ ค ํ์ผ๋, ๋๋ก๋ ๋จ์ํ๊ฒ ๋ ์ง๊ด์ ์ธ ๊ฒ ๊ฐ์, ๋ค์๊ณผ ๊ฐ์ด ํ์๋ค.