Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions Challenge/jmjmjm/everyArray/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# 문제제목

## 설명

every를 이용해서 모든 원소가 짝수인지 아닌지를 판별하세요

## Expected Output

true
8 changes: 8 additions & 0 deletions Challenge/jmjmjm/everyArray/solve.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const inputArray = [2, 3, 6, 8, 10];

let answer = inputArray.every(item => {
return item % 2 == 0;
})

console.log(answer);

3 changes: 3 additions & 0 deletions Challenge/jmjmjm/expDivOdd/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 설명

제곱한 후 3으로 나눈 나머지가 홀수인 것 을 뽑은 배열의 총 합을 구하세요.
12 changes: 12 additions & 0 deletions Challenge/jmjmjm/expDivOdd/solve.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// 제곱한 후 3으로 나눈 나머지가 홀수인 것 을 뽑은 배열의 총 합을 구하세요.

const inputArray = [2, 3, 6, 8, 10];

let answer = inputArray
.map((e) => e ** 2)
.filter((e) => e % 3 == 1)
.reduce((acc, cur) => {
return acc + cur;
}, 0);

console.log(answer);
35 changes: 35 additions & 0 deletions Challenge/jmjmjm/figureSkating/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
## 설명

점수를 계산해서 점수가 높은 순으로 name과 score를 가진 객체의 배열을 출력하세요.
단 실격자는 출력하지 않습니다.

### 피겨 점수 기준

피겨 점수는 ‘기술점수(TES)+예술점수(PCS)-감점’으로 구성된다.

기술점수(TES·Total Element Score)는 기본점수에 수행점수(GOE·Grade Of Execution)를 합산해 도출한다.

심판은 선수들이 점프와 스핀의 기술을 제대로 수행하는지 살핀다. 점프에선 회전수를 제대로 지켰는지, 에지를 제대로 사용했는지에 따라 ‘롱 에지’(잘못된 에지 사용)나 ‘다운그레이드’(난이도 하락), ‘어텐션’(주의) 등의 판정을 내린다. 스핀과 스텝시퀀스에 붙는 레벨(1~4)도 이들이 결정한다.

9명의 심판은 선수들이 미리 제출한 연기 구성표를 기준으로 과제별 기본점수에서 가·감점을 한다. 이른바 ‘GOE’라 불리는 수행점수다.

쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다.

예술점수(PCS·Total Program Component Score)는 프로그램의 완성도에 영향을 미치는 스케이팅 기술·동작의 연결·연기·안무·곡 해석 등 5가지를 평가한다.

마지막으로 감점이 반영된다. 감점 항목이 발생할 때마다 1점씩 감점된다.

원문보기:
http://news.khan.co.kr/kh_news/khan_art_view.html?art_id=201402172146545#csidx6329aebb6a02152bca884614a7f0544

### 판정 기준

- 점수가 가장 높은 사람이 1등이다.
- 점수는 기술점수(TES) + 예술점수(PCS) - 감점 으로 구성된다.
- 기술점수(TES)는 기본점수 \* 수행점수(GOE)를 합산해 도출한다.
- 필수 수행과제를 수행하지 못했을 시 실격이다.

### 필수 수행과제

- 쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다.
- 점프와 스핀을 4번 이상 수행했을 시 가장 잘한 3개를 기준으로 한다.
87 changes: 87 additions & 0 deletions Challenge/jmjmjm/figureSkating/solve.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
// 기본 점수
const baseScore = {
jump: 10,
spin: 20,
step: 15,
};

const baseAssignment = {
jump: 3,
spin: 3,
step: 1,
};

const inputArray = [
{
name: "김연아",
goe: {
jump: [10, 9, 10],
spin: [10, 10, 10],
step: [9],
},
pcs: 30,
penalty: 0,
},
{
name: "피겨의 신",
goe: {
jump: [10000, 10000],
spin: [10000, 10000, 10000],
step: [10000],
},
pcs: 100000,
penalty: 0,
},
{
name: "아사다 마오",
goe: {
jump: [9, 6, 8, 9],
spin: [9, 9, 9],
step: [8],
},
pcs: 29,
penalty: 10,
},
];

const answer = inputArray
.filter((player) => {
return (
player.goe.jump.length >= baseAssignment.jump &&
player.goe.spin.length >= baseAssignment.spin &&
player.goe.step.length >= baseAssignment.step
);
})
.map((v) => {
//TES
let result = 0;
result += v.goe.jump
.sort((a, b) => b - a)
.slice(0, baseAssignment.jump)
.reduce((acc, cur) => {
return acc + cur * baseScore.jump;
}, 0);
result += v.goe.spin
.sort((a, b) => b - a)
.slice(0, baseAssignment.spin)
.reduce((acc, cur) => {
return acc + cur * baseAssignment.spin;
}, 0);
result += v.goe.step
.sort((a, b) => b - a)
.slice(0, baseAssignment.step)
.reduce((acc, cur) => {
return acc + cur * baseAssignment.step;
}, 0);
// PCS
result += v.pcs;
// PENALTY
result -= v.penalty;

return {
name: v.name,
score: result,
};
});

console.log(answer);
3 changes: 3 additions & 0 deletions Challenge/jmjmjm/filterAge/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 설명

배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요
19 changes: 19 additions & 0 deletions Challenge/jmjmjm/filterAge/solve.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// 배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요
// write your codes

const inputArray = [
{name: '재만', age: 36},
{name: '준호', age: 30},
{name: '영희', age: 28},
{name: '은혜', age: 45},
{name: '영수', age: 55}
];

let answer = inputArray.filter(e => e.age >= 30 && e.age < 50)
.sort(function(a, b) {
if (a.age > b.age) return 1;
if (a.age == b.age) return 0;
if (a.age < b.age) return -1;
})

console.log(answer);
5 changes: 5 additions & 0 deletions Challenge/jmjmjm/filterIntersection/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# 문제제목

## 설명

두 배열의 교집합을 출력하세요!
8 changes: 8 additions & 0 deletions Challenge/jmjmjm/filterIntersection/solve.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const tempA = [1, 2, 3, 4, 5];
const tempB = [3, 4, 5, 6, 7];

const answer = tempA.filter(e => tempB.includes(e));

console.log(answer);


Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@ const inputArray = [1, 5, 6, 7 ,9, 3, 14];

const answer = inputArray.filter(e => {
return (e%2) == 1
})
});

console.log(answer);
9 changes: 9 additions & 0 deletions Challenge/jmjmjm/findWord/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# 문제제목

## 설명

용가리라는 단어가 있으면 true 없으면 false를 출력

## Expected Output

true
5 changes: 5 additions & 0 deletions Challenge/jmjmjm/findWord/solve.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
const inputArray = ["잠", "자", "고", "싶", "다", "용가리", "jmjmjm"];

const answer = inputArray.includes("용가리");

console.log(answer);
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ const answer = [];

inputArray.forEach(e => {
e >= 40 ? answer.push(e) : ''
})
});

console.log(answer);
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ inputArray.forEach(e => {
if (Number.isInteger(e)) {
answer.push(e)
}
})
});

console.log(answer);

Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ const answer = [];
inputArray.forEach(e => {
let val = e+'';
answer.push(val.concat('%'))
})
});

console.log(answer);
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ let answer = '';

answer = inputArray.reduce((a, c) => {
return a+c
}, 0)
}, 0);

console.log(answer);
3 changes: 3 additions & 0 deletions Challenge/jmjmjm/mapAddPercent/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 설명

map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요
5 changes: 5 additions & 0 deletions Challenge/jmjmjm/mapAddPercent/solve.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
const inputArray = [100, 10, 20, 40];

const answer = inputArray.map((e) => e + "%");

console.log(answer);
3 changes: 3 additions & 0 deletions Challenge/jmjmjm/mapAppendOrder/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 설명

배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요
8 changes: 8 additions & 0 deletions Challenge/jmjmjm/mapAppendOrder/solve.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const inputArray = ["홍길동", "둘리", "루피"];

const answer = inputArray.map((el, idx) => {
return {
name: el,
order: idx + 1,
};
});
15 changes: 15 additions & 0 deletions Challenge/jmjmjm/recommendAd/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# 문제제목

사용자가 안 본 광고는?

## 설명

유튜브는 사용자가 프리미엄 회원이 아닌 경우 영상 시작이나 중간에 광고가 나오도록 설정되어 있습니다.

[2020년 유튜브 인기 광고](https://www.thinkwithgoogle.com/intl/ko-kr/marketing-strategies/video/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD-youtube-%EC%9D%B8%EA%B8%B0-%EA%B4%91%EA%B3%A0%EC%98%81%EC%83%81-2020%EB%85%84-%EC%97%B0%EB%A7%90%EA%B2%B0%EC%82%B0/)는 총 열 편으로, 사용자의 일주일간 광고 시청 이력을 통해 해당 사용자가 일주일 동안 안 본 광고를 그 다음주에 노출함으로써 광고들이 사용자에게 골고루 노출되길 원합니다.

유저가 매일 유튜브에 접속하여 하루 한 편 이상의 광고를 보았다고 가정할 때, 이 유저가 안 본 광고는 무엇인지 출력해주세요.

## Expected Output

[ '동원F&B' ]
28 changes: 28 additions & 0 deletions Challenge/jmjmjm/recommendAd/solve.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
const userHistory = [
{ date: "2020-11-03", watched: ["KT", "BBQ"] },
{ date: "2020-11-04", watched: ["정관장", "KT", "딱좋은데이"] },
{ date: "2020-11-05", watched: ["그랑사가", "농심"] },
{ date: "2020-11-06", watched: ["BBQ"] },
{ date: "2020-11-07", watched: ["쌍용자동차", "BBQ", "KT"] },
{ date: "2020-11-08", watched: ["켈로그코리아", "빙그레"] },
{ date: "2020-11-09", watched: ["KT", "그랑사가", "빙그레"] },
];

const advList = [
"동원F&B",
"정관장",
"KT",
"BBQ",
"그랑사가",
"농심",
"딱좋은데이",
"빙그레",
"쌍용자동차",
"켈로그코리아",
];
let allAdv = [];

userHistory.forEach((el) => allAdv.push(...el.watched));
const answer = advList.filter((e) => !allAdv.includes(e));

console.log(answer);
3 changes: 3 additions & 0 deletions Challenge/jmjmjm/reduceMaxValueNIndex/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 설명

reduce 메소드를 사용해 최댓값의 값을 maxValue에, 해당 값의 index를 idx에 넣은 객체를 출력하세요
4 changes: 4 additions & 0 deletions Challenge/jmjmjm/reduceMaxValueNIndex/solve.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
// write your codes
function solution(inputArray) {}

exports.solution = solution;
3 changes: 3 additions & 0 deletions Challenge/jmjmjm/reduceNameNickname/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 설명

입력받은 객채배열의 nickname을 key, name을 value로 하는 객체를 출력하세요
4 changes: 4 additions & 0 deletions Challenge/jmjmjm/reduceNameNickname/solve.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
// write your codes
function solution(inputArray) {}

exports.solution = solution;
9 changes: 9 additions & 0 deletions Challenge/jmjmjm/reduceSum/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# 문제제목

## 설명

reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요.

## Expected Output

106
4 changes: 4 additions & 0 deletions Challenge/jmjmjm/reduceSum/solve.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
// write your codes
function solution(inputArray) {}

exports.solution = solution;
14 changes: 14 additions & 0 deletions Challenge/jmjmjm/sortByPrice/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# 문제제목

## 설명

배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요

## Expected Output

[
{ name: '사과', price: 1000 },
{ name: '당근', price: 2000 },
{ name: '수박', price: 5000 },
{ name: '참외', price: 10000 }
]
4 changes: 4 additions & 0 deletions Challenge/jmjmjm/sortByPrice/solve.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
// write your codes
function solution(inputArray) {}

exports.solution = solution;
16 changes: 16 additions & 0 deletions Challenge/jmjmjm/sortByPriceAndQuantity/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# 문제제목

## 설명

배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요
만약 price가 같다면 quantity기준으로 오름차순 정렬하세요

## Expected Output

[
{ name: '사과', price: 1000, quantity: 2 },
{ name: '오이', price: 2000, quantity: 49 },
{ name: '당근', price: 2000, quantity: 50 },
{ name: '참외', price: 5000, quantity: 10 },
{ name: '수박', price: 5000, quantity: 20 }
]
Loading