Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit f2520e9

Browse files
Merge pull request codeisneverodd#20 from prove-ability/main
[정기적 문제 풀이 추가 PR] 2022年04月05日
2 parents d8dfc87 + 74348f2 commit f2520e9

9 files changed

+180
-118
lines changed

‎level-1/내적.js

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,27 @@
33
//정답 1 - codeisneverodd
44
function solution(a, b) {
55
var answer = 1234567890;
6-
answer = a.reduce((x, y, i) => x + y * b[i], 0)
6+
answer = a.reduce((x, y, i) => x + y * b[i], 0);
77
return answer;
88
}
99

1010
//정답 2 - yongchanson
1111
function solution(a, b) {
1212
var answer = 0;
1313

14-
for(i=0; i<a.length; i++) {
15-
answer += a[i] * b[i]
14+
for(i=0; i<a.length; i++) {
15+
answer += a[i] * b[i];
1616
}
1717
return answer;
1818
}
19+
20+
//정답 3 - prove-ability
21+
function solution(a, b) {
22+
var answer = 0;
23+
24+
for (let i = 0, len = a.length; i < len; i++) {
25+
answer += a[i] * b[i];
26+
}
27+
28+
return answer;
29+
}

‎level-1/두-정수-사이의-합.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
function solution(a, b) {
55
var answer = 0;
66
for (let i = Math.min(a, b); i <= Math.max(a, b); i++) {
7-
answer += i
7+
answer += i;
88
}
99
return answer;
1010
}
@@ -16,4 +16,4 @@ function solution(a, b) {
1616
answer += i;
1717
}
1818
return answer;
19-
}
19+
}

‎level-1/수박수박수박수박수박수.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
//완벽한 정답이 아닙니다.
33
//정답 1 - codeisneverodd
44
function solution(n) {
5-
var answer = '';
5+
var answer = "";
66
for (let i = 0; i < n; i++) {
7-
answer += i % 2 === 0 ? '수' : '박'
7+
answer += i % 2 === 0 ? "수" : "박";
88
}
99
return answer;
1010
}

‎level-1/신고-결과-받기.js

Lines changed: 110 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -2,100 +2,129 @@
22
//완벽한 정답이 아닙니다.
33
//정답 1 - codeisneverodd
44
function solution(id_list, report, k) {
5-
//report를 set을 이용하여 중복제거, 각 id 당 신고당한 횟수 reportedCount에 저장,
6-
//각 id를 신고한 사람 array를 reportedBy에 저장,
7-
//k번 이상 신고당한 id를 신고한 id가 받을 메일 수를 mailCount에 저장
8-
//answer에 mailCount에 저장된 값을 id_list와 같은 id 순서로 저장.
9-
const reportSet = new Set(report)
10-
const reportedCount = {} //{"id": Number(count)}
11-
const reportedBy = {} //{"id":[]}
12-
const mailCount = {} //{"id":Number(count)}
13-
id_list.forEach((element) => {
14-
//Initialization
15-
reportedCount[element] = 0
16-
mailCount[element] = 0
17-
reportedBy[element] = []
18-
})
19-
reportSet.forEach((element) => {
20-
const $id = element.split(" ")[0]
21-
const $reported = element.split(" ")[1]
22-
reportedCount[$reported] += 1
23-
reportedBy[$reported].push($id)
24-
})
25-
for (const reportedId in reportedCount) {
26-
if (reportedCount[reportedId] >= k) {
27-
reportedBy[reportedId].forEach((reporter) => {
28-
mailCount[reporter] += 1
29-
})
5+
//report를 set을 이용하여 중복제거, 각 id 당 신고당한 횟수 reportedCount에 저장,
6+
//각 id를 신고한 사람 array를 reportedBy에 저장,
7+
//k번 이상 신고당한 id를 신고한 id가 받을 메일 수를 mailCount에 저장
8+
//answer에 mailCount에 저장된 값을 id_list와 같은 id 순서로 저장.
9+
const reportSet = new Set(report);
10+
const reportedCount = {}; //{"id": Number(count)}
11+
const reportedBy = {}; //{"id":[]}
12+
const mailCount = {}; //{"id":Number(count)}
13+
id_list.forEach((element) => {
14+
//Initialization
15+
reportedCount[element] = 0;
16+
mailCount[element] = 0;
17+
reportedBy[element] = [];
18+
});
19+
reportSet.forEach((element) => {
20+
const $id = element.split(" ")[0];
21+
const $reported = element.split(" ")[1];
22+
reportedCount[$reported] += 1;
23+
reportedBy[$reported].push($id);
24+
});
25+
for (const reportedId in reportedCount) {
26+
if (reportedCount[reportedId] >= k) {
27+
reportedBy[reportedId].forEach((reporter) => {
28+
mailCount[reporter] += 1;
29+
});
30+
}
3031
}
31-
}
32-
var answer = []
33-
id_list.forEach((element) => {
34-
answer.push(mailCount[element])
35-
})
32+
var answer = [];
33+
id_list.forEach((element) => {
34+
answer.push(mailCount[element]);
35+
});
3636

37-
return answer
37+
return answer;
3838
}
3939

4040
//정답 2 - jaewon1676
4141
function solution(id_list, report, k) {
42-
let answer = new Array(id_list.length).fill(0)
43-
let report_list = {} // 신고당한 ID
42+
let answer = new Array(id_list.length).fill(0);
43+
let report_list = {}; // 신고당한 ID
4444

45-
// key, value 형식의 report_list 객체를 만든다.
46-
id_list.map((user) => {
47-
report_list[user] = [] //key = userid , value = 빈 배열을 가지는 객체
48-
})
49-
// report_list { muzi: [], frodo: [], apeach: [], neo: [] }
45+
// key, value 형식의 report_list 객체를 만든다.
46+
id_list.map((user) => {
47+
report_list[user] = []; //key = userid , value = 빈 배열을 가지는 객체
48+
});
49+
// report_list { muzi: [], frodo: [], apeach: [], neo: [] }
5050

51-
// 유저가 신고한 ID를 report_list 객체에 넣어주기 위해 순회한다.
52-
report.map((user) => {
53-
const [user_id, report_id] = user.split(" ")
54-
// report 값에서 띄어쓰기로 구분된 문자열을 자르고 user_id, report_id로 각각 넣어준다.
55-
if (!report_list[report_id].includes(user_id)) {
56-
report_list[report_id].push(user_id)
57-
// 배열에 포함하는지 여부를 확인하여 포함하지 않을때 신고자의 이름을 추가하였다.
51+
// 유저가 신고한 ID를 report_list 객체에 넣어주기 위해 순회한다.
52+
report.map((user) => {
53+
const [user_id, report_id] = user.split(" ");
54+
// report 값에서 띄어쓰기로 구분된 문자열을 자르고 user_id, report_id로 각각 넣어준다.
55+
if (!report_list[report_id].includes(user_id)) {
56+
report_list[report_id].push(user_id);
57+
// 배열에 포함하는지 여부를 확인하여 포함하지 않을때 신고자의 이름을 추가하였다.
58+
}
59+
});
60+
for (const key in report_list) {
61+
// report_list의 index 순회
62+
if (report_list[key].length >= k) {
63+
report_list[key].map((user) => {
64+
answer[id_list.indexOf(user)] += 1;
65+
});
66+
}
5867
}
59-
})
60-
for (const key in report_list) {
61-
// report_list의 index 순회
62-
if (report_list[key].length >= k) {
63-
report_list[key].map((user) => {
64-
answer[id_list.indexOf(user)] += 1
65-
})
66-
}
67-
}
68-
return answer
68+
return answer;
6969
}
7070

7171
//정답 3 - prove-ability
7272
function solution(id_list, report, k) {
73-
// 사용자 길이의 빈 배열을 만든다 0
74-
var answer = new Array(id_list.length).fill(0)
75-
// 신고된 내용 정리할 객체 선언
76-
const obj = {}
77-
// 신고된 내용 정리할 객체 사용자 아이디로 초기화
78-
id_list.forEach((id) => {
79-
obj[id] = new Set()
80-
})
81-
// 신고 리스트를 조회하며 신고 내용 객체에 정리
82-
// set.add 를 활용해 같은 사용자의 중복 신고 제거
83-
report.forEach((str) => {
84-
const [reporter, target] = str.split(" ")
85-
obj[target].add(reporter)
86-
})
87-
// obj value 하나씩 접근
88-
for (const value of Object.values(obj)) {
89-
// 신고당한 횟수가 정지 기준에 적합하다면
90-
if (value.size >= k) {
91-
// 해당 유저를 신고한 사람들
92-
for (let item of value) {
93-
// 인덱스 구해서 증가
94-
let index = id_list.indexOf(item)
95-
answer[index]++
96-
}
73+
// 사용자 길이의 빈 배열을 만든다 0
74+
var answer = new Array(id_list.length).fill(0);
75+
// 신고된 내용 정리할 객체 선언
76+
const obj = {};
77+
// 신고된 내용 정리할 객체 사용자 아이디로 초기화
78+
id_list.forEach((id) => {
79+
obj[id] = new Set();
80+
});
81+
// 신고 리스트를 조회하며 신고 내용 객체에 정리
82+
// set.add 를 활용해 같은 사용자의 중복 신고 제거
83+
report.forEach((str) => {
84+
const [reporter, target] = str.split(" ");
85+
obj[target].add(reporter);
86+
});
87+
// obj value 하나씩 접근
88+
for (const value of Object.values(obj)) {
89+
// 신고당한 횟수가 정지 기준에 적합하다면
90+
if (value.size >= k) {
91+
// 해당 유저를 신고한 사람들
92+
for (let item of value) {
93+
// 인덱스 구해서 증가
94+
let index = id_list.indexOf(item);
95+
answer[index]++;
96+
}
97+
}
98+
}
99+
100+
return answer;
101+
}
102+
103+
//정답 4 - prove-ability
104+
function solution(id_list, report, k) {
105+
// 사원 리스트 0으로 초기화 - 받은 메일 숫자 세기
106+
var answer = Array.from({ length: id_list.length }).fill(0);
107+
// 신고 내용 객체 초기화 - 신고된 내용 정리
108+
const reportObj = {};
109+
// 신고건 반복문으로 하나씩 접근
110+
for (let i = 0, len = report.length; i < len; i++) {
111+
const [userId, reportUserId] = report[i].split(" ");
112+
// 신고 내용 객체에 신고당한 사람이 있고 이전에 신고하지 않았다면 추가
113+
if (reportObj[reportUserId]) {
114+
if (!reportObj[reportUserId].includes(userId)) {
115+
reportObj[reportUserId] = [...reportObj[reportUserId], userId];
116+
}
117+
// 신고 내용 객체에 신고당한 사람이 없다면 추가
118+
} else reportObj[reportUserId] = [userId];
119+
}
120+
// 만들어진 신고 내용 객체로 반복적으로 접근
121+
for (const item of Object.values(reportObj)
122+
.filter((v) => v.length >= k)
123+
.flatMap((v) => v)) {
124+
// 인덱스로 접근해 메일 카운트 증가
125+
const index = id_list.findIndex((v) => v === item);
126+
answer[index]++;
97127
}
98-
}
99128

100-
return answer
129+
return answer;
101130
}

‎level-1/없는-숫자-더하기.js

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
//정답 1 - codeisneverodd
44
function solution(numbers) {
55
var answer = -1;
6-
answer = 45 - numbers.reduce((a, b) => a + b)
6+
answer = 45 - numbers.reduce((a, b) => a + b);
77
return answer;
88
}
99

1010
//정답 2 - codeisneverodd
1111
function solution(numbers) {
1212
var answer = 0;
1313
for (let i = 0; i < 10; i++) {
14-
answer += numbers.includes(i) ? 0 : i
14+
answer += numbers.includes(i) ? 0 : i;
1515
}
1616
return answer;
1717
}
@@ -20,22 +20,33 @@ function solution(numbers) {
2020
function solution(numbers) {
2121
var answer = -1;
2222

23-
let arr = [0,1,2,3,4,5,6,7,8,9];
23+
let arr = [0,1,2,3,4,5,6,7,8,9];
2424
let arr_sum = 0;
2525
let numbers_sum = 0;
2626

27-
for(i=0; i<arr.length/2; i++) {
28-
if(arr[i] == arr[arr.length -1 -i]) {
29-
arr_sum += arr[i]
27+
for(i=0; i<arr.length/2; i++) {
28+
if(arr[i] == arr[arr.length -1 -i]) {
29+
arr_sum += arr[i];
3030
} else {
31-
arr_sum += arr[i] + arr[arr.length -1 -i]
32-
}
31+
arr_sum += arr[i] + arr[arr.length -1 -i];
32+
}
3333
}
3434

35-
for(i=0; i<numbers.length; i++) {
36-
numbers_sum += numbers[i]
35+
for(i=0; i<numbers.length; i++) {
36+
numbers_sum += numbers[i];
3737
}
3838

3939
answer = arr_sum - numbers_sum;
4040
return answer;
4141
}
42+
43+
//정답 3 - prove-ability
44+
function solution(numbers) {
45+
var answer = 0;
46+
47+
for (let i = 0; i < 10; i++) {
48+
if (!numbers.includes(i)) answer += i;
49+
}
50+
51+
return answer;
52+
}

‎level-1/음양-더하기.js

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,41 @@
33
//정답 1 - codeisneverod
44
function solution(absolutes, signs) {
55
var answer = 123456789;
6-
answer = absolutes.reduce((a, b, i) => a + b * (signs[i] ? 1 : -1), 0)
6+
answer = absolutes.reduce((a, b, i) => a + b * (signs[i] ? 1 : -1), 0);
77
return answer;
88
}
99

1010
//정답 2 - codeisneverod
1111
function solution(absolutes, signs) {
1212
var answer = 0;
1313
for (let i = 0; i < absolutes.length; i++) {
14-
answer += signs[i] ? absolutes[i] : -1 * absolutes[i]
14+
answer += signs[i] ? absolutes[i] : -1 * absolutes[i];
1515
}
1616
return answer;
1717
}
1818

1919
//정답 3 - jaewon1676
2020
function solution(absolutes, signs) {
21-
var answer = 0
22-
for(var i=0; i<absolutes.length; i++){
23-
if (signs[i] === false){
24-
answer = answer - absolutes[i]
25-
}
26-
else{
27-
answer = answer + absolutes[i]
21+
var answer = 0;
22+
for (var i = 0; i < absolutes.length; i++) {
23+
if (signs[i] === false) {
24+
answer = answer - absolutes[i];
25+
} else {
26+
answer = answer + absolutes[i];
2827
}
2928
}
30-
29+
30+
return answer;
31+
}
32+
33+
// 정답 4 - prove-ability
34+
function solution(absolutes, signs) {
35+
var answer = 0;
36+
37+
for (let i = 0, len = absolutes.length; i < len; i++) {
38+
if (!signs[i]) answer += absolutes[i] * -1;
39+
else answer += absolutes[i];
40+
}
41+
3142
return answer;
32-
}
43+
}

‎level-1/짝수와-홀수.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ function solution(num) {
88

99
//정답 2 - chaerin-dev
1010
function solution(num) {
11-
return num % 2 == 0 ? "Even" : "Odd";
11+
return num % 2 == 0 ? "Even" : "Odd";
1212
}
1313

1414
//정답 3 - jaewon1676
@@ -17,4 +17,4 @@ function solution(num) {
1717
(num % 2 == 0 ? answer = 'Even' : answer = 'Odd')
1818
// 삼항 연산자를 사용하여 참일경우 Even, 거짓일 경우 Odd를 반환.
1919
return answer;
20-
}
20+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /