Jieunny์ ๋ธ๋ก๊ทธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌํ๊ธฐ ๋ณธ๋ฌธ
๐ ๋ฌธ์
๋๋ง์ ์นด์นด์ค ์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌ์ง๋ฅผ ๋ง๋ค๋ ค๊ณ ํฉ๋๋ค.
์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌ๋ ๋ค์๊ณผ ๊ฐ์ 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 ๋งค์ฐ ๋์
๐ก ์์ด๋์ด
์งํ๋ ๊ฐ์ฒด๋ก, score๋ ๋ฐฐ์ด๋ก ์ ์ฅํด๋๋ค.
survey ๋๋ฉด์ 4๋ณด๋ค ์์ผ๋ฉด survey์ ๊ฐ ์์ ์ค ์ ์ ํ => indicators์์ ๊ทธ ์ ํ ์ฐพ์์ score ๋ฐฐ์ด์์ ์ ํํ ๋ฒํธ์ ํด๋นํ๋ ์ ์๋ฅผ ๋ํด์ค๋ค.
๊ฐ ์งํ ๋ณ๋ก ํฌ๊ธฐ ๋น๊ตํ๋ฉด์ ํฐ ๊ฑธ answer์ ๋ํด์ค๋ค.
โ๏ธ ํ์ด
function solution(survey, choices) {
var answer = '';
const indicators = { // ์ ํ๊ณผ ์ ์ ์ ์ฅํ ๊ฐ์ฒด
'R': 0,
'T': 0,
'C': 0,
'F': 0,
'J': 0,
'M': 0,
'A': 0,
'N': 0
};
const score = [3, 2, 1, 0, 1, 2, 3]; // ์ค์ฝ์ด ์์๋๋ก ์ ์ฅ
for(let i=0; i<survey.length; i++){
if(choices[i] < 4){ // ์ ํ ๋ฒํธ๊ฐ 4๋ณด๋ค ์์ผ๋ฉด ์์ ์ ํ ์ ํํ๊ฒ
indicators[survey[i][0]] += score[choices[i]-1]; // choices๋ 1๋ถํฐ ์์ํ๋ฏ๋ก -1 ํด์ค๋ค.
}
else if(choices[i] > 4){ // ์ ํ ๋ฒํธ๊ฐ 4๋ณด๋ค ํฌ๋ฉด ๋ค์ ์ ํ ์ ํํ ๊ฒ
indicators[survey[i][1]] += score[choices[i]-1];
}
}
if(indicators['R'] > indicators['T']) answer += 'R';
else if(indicators['R'] < indicators['T']) answer += 'T';
else answer += 'R';
if(indicators['C'] > indicators['F']) answer += 'C';
else if(indicators['C'] < indicators['F']) answer += 'F';
else answer += 'C';
if(indicators['J'] > indicators['M']) answer += 'J';
else if(indicators['J'] < indicators['M']) answer += 'M';
else answer += 'J';
if(indicators['A'] > indicators['N']) answer += 'A';
else if(indicators['A'] < indicators['N']) answer += 'N';
else answer += 'A';
return answer;
}
'Study > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ (0) | 2023.02.02 |
---|---|
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ฒ๊ฑฐ ๋ง๋ค๊ธฐ (0) | 2023.02.02 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์ ๊ท ์์ด๋ ์ถ์ฒ (0) | 2023.02.02 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์น์์ด(2) (0) | 2023.02.01 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์ (2) | 2023.02.01 |