๋ฌธ์ ์ค๋ช
์ํฌ์๋ ์ํ์ ํฌ๊ธฐํ ์ฌ๋์ ์ค๋ง์ ๋๋ค. ์ํฌ์ ์ผ์ธ๋ฐฉ์ ๋ชจ์๊ณ ์ฌ์ ์ํ ๋ฌธ์ ๋ฅผ ์ ๋ถ ์ฐ์ผ๋ ค ํฉ๋๋ค. ์ํฌ์๋ 1๋ฒ ๋ฌธ์ ๋ถํฐ ๋ง์ง๋ง ๋ฌธ์ ๊น์ง ๋ค์๊ณผ ๊ฐ์ด ์ฐ์ต๋๋ค.
1๋ฒ ์ํฌ์๊ฐ ์ฐ๋ ๋ฐฉ์: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...
2๋ฒ ์ํฌ์๊ฐ ์ฐ๋ ๋ฐฉ์: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...
3๋ฒ ์ํฌ์๊ฐ ์ฐ๋ ๋ฐฉ์: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...
1๋ฒ ๋ฌธ์ ๋ถํฐ ๋ง์ง๋ง ๋ฌธ์ ๊น์ง์ ์ ๋ต์ด ์์๋๋ก ๋ค์ ๋ฐฐ์ด answers๊ฐ ์ฃผ์ด์ก์ ๋, ๊ฐ์ฅ ๋ง์ ๋ฌธ์ ๋ฅผ ๋งํ ์ฌ๋์ด ๋๊ตฌ์ธ์ง ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์กฐ๊ฑด
- ์ํ์ ์ต๋ 10,000 ๋ฌธ์ ๋ก ๊ตฌ์ฑ๋์ด์์ต๋๋ค.
- ๋ฌธ์ ์ ์ ๋ต์ 1, 2, 3, 4, 5์ค ํ๋์ ๋๋ค.
- ๊ฐ์ฅ ๋์ ์ ์๋ฅผ ๋ฐ์ ์ฌ๋์ด ์ฌ๋ฟ์ผ ๊ฒฝ์ฐ, returnํ๋ ๊ฐ์ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
์ ์ถ๋ ฅ ์
[1,2,3,4,5] | [1] |
[1,3,2,4,2] | [1,2,3] |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- ์ํฌ์ 1์ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ๋งํ์ต๋๋ค.
- ์ํฌ์ 2๋ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํ๋ ธ์ต๋๋ค.
- ์ํฌ์ 3์ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํ๋ ธ์ต๋๋ค.
๋ฐ๋ผ์ ๊ฐ์ฅ ๋ฌธ์ ๋ฅผ ๋ง์ด ๋งํ ์ฌ๋์ ์ํฌ์ 1์ ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- ๋ชจ๋ ์ฌ๋์ด 2๋ฌธ์ ์ฉ์ ๋ง์ท์ต๋๋ค.
function solution(answers) {
var answer = [];
// ์ํฌ์๋ค์ ๋ฐ๋ณต๋๋ ๊ท์น์ ์๋ฅผ ๋ฐฐ์ด๋ก ์ ์ฅ
let p1 = [1,2,3,4,5];
let p2 = [2,1,2,3,2,4,2,5];
let p3 = [3,3,1,1,2,2,4,4,5,5];
// filter๋ฅผ ์ฌ์ฉํ์ฌ answers๋ฅผ ํ์ํ๋ฉด์ ์ํฌ์๋ค์ ๋ฒํธ์ ๋น๊ต(์์ ํ์)
let s1 = answers.filter( (a, i) => a === p1[i%5] ).length;
let s2 = answers.filter( (a, i) => a === p2[i%8] ).length;
let s3 = answers.filter( (a, i) => a === p3[i%10] ).length;
// ์ธ ์ฌ๋์ ์ ์ ์ค ์ต๋๊ฐ ๊ตฌํ๊ธฐ
let max = Math.max(s1, s2, s3);
// ์ต๋๊ฐ๊ณผ ์ผ์นํ ์ ์๋ฅผ ๊ฐ์ง๋ฉด answer์ ์ ์ฅ
if(s1 === max) answer.push(1);
if(s2 === max) answer.push(2);
if(s3 === max) answer.push(3);
return answer;
}
Javascript filter (๋ฐฐ์ด ์ฒ๋ฆฌ)
filter
- ์ฝ๋ฐฑํจ์์ ์ง์ ๋ ์กฐ๊ฑด์ ๋ง๋ ์์๋ฅผ ์๋กญ๊ฒ ๋ฐํ
- ์ฝ๋ฐฑํจ์์ ์ธ์ (์์๋๋ก) : ๊ฐ, ์ธ๋ฑ์ค, ์ ๋ฐฐ์ด
- Array.prototype.filter
filter ์ฌ์ฉ ํจํด 1
let data = [
{name: '1', age: 15},
{name: '2', age: 20},
{name: '3', age: 25},
];
let result = data.filter( x => {
return x.age >= 20;
});
console.log(result);
data์ ์์ ์ค์ age๋ผ๋ value๊ฐ์ด 20 ์ด์์ธ ์์๋ง result ๋ฐฐ์ด์ ๋ฃ๋ ์์ ์ด๋ค.
result๋ฅผ ์ถ๋ ฅํ๋ฉด ์๋์ ๊ฐ์ด ๋์จ๋ค.
0: {name:'2', age:'20'}
1: {name:'3', age:'25'}
length: 2
์์ ๊ฐ์ด ๋ฐํ๋๋ฉด์ length๋ฅผ ์ด์ฉํ๋ฉด data ๋ฐฐ์ด์ ์กฐ๊ฑด์ ๋ง๋ ์์์ ๊ฐ์๋ฅผ ์ ์ ์๋ค.
filter ์ฌ์ฉ ํจํด 2
let data = [
{name: '1', age: 15},
{name: '2', age: 20},
{name: '3', age: 25},
];
let result = data.filter( (x, idx, array) => {
return idx >= 2 && x.age >= 20;
});
console.log(result);
data์ ์์ ์ค์ age๊ฐ 20์ด์์ด๋ฉด์, data์ ์์ ์ธ๋ฑ์ค๊ฐ 2์ด์์ธ ์์๋ง result์ ๋ฃ๋ ์์ ์ด๋ค.
์์ ์์ ์ ๋ฌ๋ฆฌ filter์ ์ธ์๊ฐ์ (๊ฐ, ์ธ๋ฑ์ค, ๋ฐฐ์ด) ํํ๋ก ํ๋ฉด ๊ฐ๊ณผ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํ์ฌ ๋ ์ ๊ตํ ํํฐ๋ง์ด ๊ฐ๋ฅํ๊ณ , array๋ฅผ ํตํด ์ ๋ฐฐ์ด๊ณผ ๋น๊ตํ๋ ์์ ๋ํ ๊ฐ๋ฅํ๋ค.
์๋์ ๊ฐ์ด ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค.
0: {name:'3', age:'25'}
length: 1
์ฐธ๊ณ : niceman.tistory.com/77
'๐ Algorithm > Solved' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ํ๊ฒ ๋๋ฒ (Javascript) (1) | 2021.01.12 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฒด์ก๋ณต (Javascript) (0) | 2021.01.10 |
[ํ๋ก๊ทธ๋๋จธ์ค] K๋ฒ์งธ ์ (Javascript) (0) | 2021.01.07 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ฃผํ์ง ๋ชปํ ์ ์ (Javascript) (0) | 2021.01.07 |
[๋ฐฑ์ค] 2789 ๋ธ๋์ญ (ํ์ด์ฌ3 Python3) (0) | 2020.10.03 |