[Lv1] ๋ชจ์๊ณ ์ฌ
function solution(answers) {
const user1 = [1, 2, 3, 4, 5];
const user2 = [2, 1, 2, 3, 2, 4, 2, 5];
const user3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
const answer = [0, 0, 0];
const result=[];
for (let i = 0; i < answers.length; i++) {
const correct = answers[i];
if (correct === user1[i % user1.length]) {
answer[0]++;
}
if (correct === user2[i % user2.length]) {
answer[1]++;
}
if (correct === user3[i % user3.length]) {
answer[2]++;
}
}
const max=Math.max(...answer)
if(max===answer[0]) result.push(1)
if(max===answer[1]) result.push(2)
if(max===answer[2]) result.push(3)
return result;
}
๋จ์ํ๊ฒ, ์ ๋ต๋ฐฐ์ด๊ณผ ๊ฐ user1,2,3์ ๋ฐฐ์ด์ ์ํํ๋ฉด์ ๊ฐ index์ ์ ๋ต์ด ์ผ์นํ๋์ง ํ์ธํ๋ฉด์ ์ ๋ต๊ฐ์๋ฅผ ์นด์ดํธํด์ค๋ค, ๊ฐ์ฅ ์ ๋ต์ ๋ง์ถ ์ ์ ๋ฅผ ์ ๋ต๊ฐฏ์์ ๋น๊ตํด answer ๋ฐฐ์ด์ pushํด์ค๋ค.
๐ Refactoring
function solution(answers) {
const answer=[];
const user1 = [1, 2, 3, 4, 5];
const user2 = [2, 1, 2, 3, 2, 4, 2, 5];
const user3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
//์ ์ ๋ณ ์ ๋ต ๊ฐ์
const c1=answers.filter((v,i)=>v===user1[i%user1.length]).length;
const c2=answers.filter((v,i)=>v===user2[i%user2.length]).length;
const c3=answers.filter((v,i)=>v===user3[i%user3.length]).length;
const max=Math.max(c1,c2,c3);
//๊ฐ์ฅ ๋ง์ด ๋ง์ถ ์ ์ answer๋ฐฐ์ด์ push
if(c1===max) answer.push(1);
if(c2===max) answer.push(2);
if(c3===max) answer.push(3);
return answer;
}
filter๋ฉ์๋๋ฅผ ํตํด ์ํํ๋ฉด์ ์ ๋ต๋ฐฐ์ด์ ์์ฑํ๊ณ ๊ฐฏ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝํด๋ณด์๋ค. ์ด ๋ฐฉ์ ๋ํ ๋์ผํ๊ฒ ์ํํ๋ฏ๋ก O(n)์ผ๋ก ์๊ฐ๋ณต์ก๋๋ ๋์ผํ์ง๋ง, ์ข ๋ ์ง๊ด์ ์ด๊ณ ๊ฐ๊ฒฐํ ์ฝ๋์ด๋ค.
[Lv1] ์ต์์ง์ฌ๊ฐํ
function solution(sizes) {
//์ธ๋ก๊ฐ ๊ฐ๋ก๋ณด๋ค ๊ธธ๋ค๋ฉด, ํ์
sizes=sizes.map((v,i)=>v[0]<v[1]?[v[1],v[0]]:[v[0],v[1]]);
const maxWidth=Math.max(...sizes.map((v)=>v[0]));
const maxHeight=Math.max(...sizes.map((v)=>v[1]));
return maxWidth*maxHeight;
}
์์ ์๋ ์ด ๋ฌธ์ ๋ฅผ ํ๋, ๋๊ฒ ํท๊ฐ๋ คํ์๋๋ฐ ๋ณต์กํ๊ฒ ์๊ฐํ์ง ๋ง๊ณ ๋ช ํจ์ฌ์ด์ฆ๋ ๊ฐ๋ก๊ฐ ์ธ๋ก๋ณด๋ค ์ต์ ๊ฐ๊ฑฐ๋ ๊ธธ์ด๊ฐ ํด ๊ฒ์ด์ง๋ง, ์ต์ํ ์์ ์ง์ฌ๊ฐํ์ ์ฐพ๊ธฐ ์ํด์ ์ธ๋ก๊ธธ์ด๋ฅผ ๊ฐ๋ก๋ก ๋๋ ธ์๋ ๋ฌธ์ ๊ฐ ์์ผ๋ฉด ๋๋๊ฒ์ด๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์, sizes ๋ฐฐ์ด์ค ์ธ๋ก๊ธธ์ด๊ฐ ํฐ ๋ฐฐ์ด์ ์ฐพ์ ๊ฐ๋ก๋ก ๋๋ ค์ฃผ๊ธฐ์ํด swapํ๋ค.
swap์ผ๋ก ํ์ ์ ํ๊ธฐ๋๋ฌธ์, ์ด์ ๋จ์ํ ๊ฐ๊ฐ์ ๊ฐ๋ก ์ธ๋ก ์ค ๊ฐ์ฅ ํฐ ๊ธธ์ด๋ฅผ ์ฐพ์ ์ง์ฌ๊ฐํ์ ๋์ด๋ฅผ ๊ตฌํ๋ฉด๋๋ค.
๐ Refactoring
function solution(sizes) {
const rotated = sizes.map(([w, h]) => w < h ? [h, w] : [w, h]);
let maxSize = [0, 0];
rotated.forEach(([w, h]) => {
if (w > maxSize[0]) maxSize[0] = w;
if (h > maxSize[1]) maxSize[1] = h;
})
return maxSize[0]*maxSize[1];
}
๊ฐ์ฒด๋ถํด ํ ๋น์ผ๋ก, ํ๋ฒ์ ์ํ๋ฅผ ๋๋ฉด์, maxWidth,height๋ฅผ ๋์์ ๊ตฌํ๋ค.