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

[정기적 문제 풀이 추가 PR] 2022年04月05日 #20

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
codeisneverodd merged 39 commits into codeisneverodd:main from prove-ability:main
Apr 6, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
3bce447
내적 - 솔루션 추가
yongchanson Mar 31, 2022
c0791e3
2016년 - 솔루션 추가
yongchanson Mar 31, 2022
7ce8b59
부족한-금액-계산하기 - 솔루션 추가
yongchanson Mar 31, 2022
746396e
가운데-글자-가져오기 - 솔루션 추가
yongchanson Mar 31, 2022
abbd5d2
Update 두-정수-사이의-합.js
chaerin-dev Apr 1, 2022
e1def10
Update 문자열을-정수로-바꾸기.js
chaerin-dev Apr 1, 2022
d8c475a
Update 두-정수-사이의-합.js
chaerin-dev Apr 1, 2022
9713180
Update 서울에서-김서방-찾기.js
chaerin-dev Apr 1, 2022
9ac0bb4
Update 수박수박수박수박수박수.js
chaerin-dev Apr 1, 2022
cd2dc2f
Update 짝수와-홀수.js
chaerin-dev Apr 1, 2022
ddae8cc
Update 콜라츠-추측.js
chaerin-dev Apr 1, 2022
f70fce8
Update 평균-구하기.js
chaerin-dev Apr 1, 2022
b175003
Update 히샤드-수.js
chaerin-dev Apr 1, 2022
b4b3d05
Update 핸드폰-번호-가리기.js
chaerin-dev Apr 1, 2022
9616592
[풀이추가] 2022年04月04日, 1문제, 없는 숫자 더하기
prove-ability Apr 4, 2022
bc7cd22
[풀이추가] 2022年04月04日, 1문제, 신고 결과 받기
prove-ability Apr 4, 2022
72f6776
Update 음양-더하기.js
prove-ability Apr 6, 2022
ec7ae69
Update 내적.js
prove-ability Apr 6, 2022
36e38fe
Update x만큼 간격이 있는 n개의 숫자.js
jaewon1676 Apr 4, 2022
f24fae2
Update 수박수박수박수박수박수?.js
jaewon1676 Apr 4, 2022
b8a39dc
Update 약수의 개수와 덧셈.js
jaewon1676 Apr 4, 2022
093dfa3
Update 짝수와 홀수.js
jaewon1676 Apr 4, 2022
0dd72c5
Update 콜라츠 추측.js
jaewon1676 Apr 4, 2022
4060246
Update 히샤드 수.js
jaewon1676 Apr 4, 2022
a631752
Update 다리를 지나는 트럭.js
jaewon1676 Apr 4, 2022
b0fa059
Update 위장.js
jaewon1676 Apr 4, 2022
8164441
[풀이 추가] 2022年04月04日, 1문제, 2 x n 타일링
jaewon1676 Apr 4, 2022
8568408
[풀이 추가] 2022年04月04日, 1문제, 이중우선순위큐.js
jaewon1676 Apr 4, 2022
d9af555
[풀이 추가] 2022年04月04日, 1문제, 2_x_n_타일링.js
jaewon1676 Apr 4, 2022
1d01e52
conflict file update
prove-ability Apr 6, 2022
feb4725
Update 두-정수-사이의-합.js
chaerin-dev Apr 1, 2022
740d73f
conflict file update
prove-ability Apr 6, 2022
8ec6b23
Update 짝수와-홀수.js
chaerin-dev Apr 1, 2022
52ada74
Update 콜라츠-추측.js
chaerin-dev Apr 1, 2022
b56f7ee
conflict file update
prove-ability Apr 6, 2022
bb1bf9c
Update 수박수박수박수박수박수?.js
jaewon1676 Apr 4, 2022
3635bab
conflict file update
prove-ability Apr 6, 2022
3357995
conflict file update
prove-ability Apr 6, 2022
74348f2
Merge branch 'main' into main
prove-ability Apr 6, 2022
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
17 changes: 14 additions & 3 deletions level-1/내적.js
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,27 @@
//정답 1 - codeisneverodd
function solution(a, b) {
var answer = 1234567890;
answer = a.reduce((x, y, i) => x + y * b[i], 0)
answer = a.reduce((x, y, i) => x + y * b[i], 0);
return answer;
}

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

for(i=0; i<a.length; i++) {
answer += a[i] * b[i]
for (i = 0; i < a.length; i++) {
answer += a[i] * b[i];
}
return answer;
}

//정답 3 - prove-ability
function solution(a, b) {
var answer = 0;

for (let i = 0, len = a.length; i < len; i++) {
answer += a[i] * b[i];
}

return answer;
}
4 changes: 2 additions & 2 deletions level-1/두-정수-사이의-합.js
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
function solution(a, b) {
var answer = 0;
for (let i = Math.min(a, b); i <= Math.max(a, b); i++) {
answer += i
answer += i;
}
return answer;
}
Expand All @@ -16,4 +16,4 @@ function solution(a, b) {
answer += i;
}
return answer;
}
}
4 changes: 2 additions & 2 deletions level-1/수박수박수박수박수박수.js
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
//완벽한 정답이 아닙니다.
//정답 1 - codeisneverodd
function solution(n) {
var answer = '';
var answer = "";
for (let i = 0; i < n; i++) {
answer += i % 2 === 0 ? '수' : '박'
answer += i % 2 === 0 ? "수" : "박";
}
return answer;
}
Expand Down
191 changes: 110 additions & 81 deletions level-1/신고-결과-받기.js
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -2,100 +2,129 @@
//완벽한 정답이 아닙니다.
//정답 1 - codeisneverodd
function solution(id_list, report, k) {
//report를 set을 이용하여 중복제거, 각 id 당 신고당한 횟수 reportedCount에 저장,
//각 id를 신고한 사람 array를 reportedBy에 저장,
//k번 이상 신고당한 id를 신고한 id가 받을 메일 수를 mailCount에 저장
//answer에 mailCount에 저장된 값을 id_list와 같은 id 순서로 저장.
const reportSet = new Set(report)
const reportedCount = {} //{"id": Number(count)}
const reportedBy = {} //{"id":[]}
const mailCount = {} //{"id":Number(count)}
id_list.forEach((element) => {
//Initialization
reportedCount[element] = 0
mailCount[element] = 0
reportedBy[element] = []
})
reportSet.forEach((element) => {
const $id = element.split(" ")[0]
const $reported = element.split(" ")[1]
reportedCount[$reported] += 1
reportedBy[$reported].push($id)
})
for (const reportedId in reportedCount) {
if (reportedCount[reportedId] >= k) {
reportedBy[reportedId].forEach((reporter) => {
mailCount[reporter] += 1
})
//report를 set을 이용하여 중복제거, 각 id 당 신고당한 횟수 reportedCount에 저장,
//각 id를 신고한 사람 array를 reportedBy에 저장,
//k번 이상 신고당한 id를 신고한 id가 받을 메일 수를 mailCount에 저장
//answer에 mailCount에 저장된 값을 id_list와 같은 id 순서로 저장.
const reportSet = new Set(report);
const reportedCount = {}; //{"id": Number(count)}
const reportedBy = {}; //{"id":[]}
const mailCount = {}; //{"id":Number(count)}
id_list.forEach((element) => {
//Initialization
reportedCount[element] = 0;
mailCount[element] = 0;
reportedBy[element] = [];
});
reportSet.forEach((element) => {
const $id = element.split(" ")[0];
const $reported = element.split(" ")[1];
reportedCount[$reported] += 1;
reportedBy[$reported].push($id);
});
for (const reportedId in reportedCount) {
if (reportedCount[reportedId] >= k) {
reportedBy[reportedId].forEach((reporter) => {
mailCount[reporter] += 1;
});
}
}
}
var answer = []
id_list.forEach((element) => {
answer.push(mailCount[element])
})
var answer = [];
id_list.forEach((element) => {
answer.push(mailCount[element]);
});

return answer
return answer;
}

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

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

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

//정답 3 - prove-ability
function solution(id_list, report, k) {
// 사용자 길이의 빈 배열을 만든다 0
var answer = new Array(id_list.length).fill(0)
// 신고된 내용 정리할 객체 선언
const obj = {}
// 신고된 내용 정리할 객체 사용자 아이디로 초기화
id_list.forEach((id) => {
obj[id] = new Set()
})
// 신고 리스트를 조회하며 신고 내용 객체에 정리
// set.add 를 활용해 같은 사용자의 중복 신고 제거
report.forEach((str) => {
const [reporter, target] = str.split(" ")
obj[target].add(reporter)
})
// obj value 하나씩 접근
for (const value of Object.values(obj)) {
// 신고당한 횟수가 정지 기준에 적합하다면
if (value.size >= k) {
// 해당 유저를 신고한 사람들
for (let item of value) {
// 인덱스 구해서 증가
let index = id_list.indexOf(item)
answer[index]++
}
// 사용자 길이의 빈 배열을 만든다 0
var answer = new Array(id_list.length).fill(0);
// 신고된 내용 정리할 객체 선언
const obj = {};
// 신고된 내용 정리할 객체 사용자 아이디로 초기화
id_list.forEach((id) => {
obj[id] = new Set();
});
// 신고 리스트를 조회하며 신고 내용 객체에 정리
// set.add 를 활용해 같은 사용자의 중복 신고 제거
report.forEach((str) => {
const [reporter, target] = str.split(" ");
obj[target].add(reporter);
});
// obj value 하나씩 접근
for (const value of Object.values(obj)) {
// 신고당한 횟수가 정지 기준에 적합하다면
if (value.size >= k) {
// 해당 유저를 신고한 사람들
for (let item of value) {
// 인덱스 구해서 증가
let index = id_list.indexOf(item);
answer[index]++;
}
}
}

return answer;
}

//정답 4 - prove-ability
function solution(id_list, report, k) {
// 사원 리스트 0으로 초기화 - 받은 메일 숫자 세기
var answer = Array.from({ length: id_list.length }).fill(0);
// 신고 내용 객체 초기화 - 신고된 내용 정리
const reportObj = {};
// 신고건 반복문으로 하나씩 접근
for (let i = 0, len = report.length; i < len; i++) {
const [userId, reportUserId] = report[i].split(" ");
// 신고 내용 객체에 신고당한 사람이 있고 이전에 신고하지 않았다면 추가
if (reportObj[reportUserId]) {
if (!reportObj[reportUserId].includes(userId)) {
reportObj[reportUserId] = [...reportObj[reportUserId], userId];
}
// 신고 내용 객체에 신고당한 사람이 없다면 추가
} else reportObj[reportUserId] = [userId];
}
// 만들어진 신고 내용 객체로 반복적으로 접근
for (const item of Object.values(reportObj)
.filter((v) => v.length >= k)
.flatMap((v) => v)) {
// 인덱스로 접근해 메일 카운트 증가
const index = id_list.findIndex((v) => v === item);
answer[index]++;
}
}

return answer
return answer;
}
31 changes: 21 additions & 10 deletions level-1/없는-숫자-더하기.js
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
//정답 1 - codeisneverodd
function solution(numbers) {
var answer = -1;
answer = 45 - numbers.reduce((a, b) => a + b)
answer = 45 - numbers.reduce((a, b) => a + b);
return answer;
}

//정답 2 - codeisneverodd
function solution(numbers) {
var answer = 0;
for (let i = 0; i < 10; i++) {
answer += numbers.includes(i) ? 0 : i
answer += numbers.includes(i) ? 0 : i;
}
return answer;
}
Expand All @@ -20,22 +20,33 @@ function solution(numbers) {
function solution(numbers) {
var answer = -1;

let arr = [0,1,2,3,4,5,6,7,8,9];
let arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
let arr_sum = 0;
let numbers_sum = 0;

for(i=0; i<arr.length/2; i++) {
if(arr[i] == arr[arr.length -1 -i]) {
arr_sum += arr[i]
for (i = 0; i < arr.length / 2; i++) {
if(arr[i] == arr[arr.length -1 -i]) {
arr_sum += arr[i];
} else {
arr_sum += arr[i] + arr[arr.length -1 -i]
}
arr_sum += arr[i] + arr[arr.length -1 - i];
}
}

for(i=0; i<numbers.length; i++) {
numbers_sum += numbers[i]
for (i = 0; i < numbers.length; i++) {
numbers_sum += numbers[i];
}

answer = arr_sum - numbers_sum;
return answer;
}

//정답 3 - prove-ability
function solution(numbers) {
var answer = 0;

for (let i = 0; i < 10; i++) {
if (!numbers.includes(i)) answer += i;
}

return answer;
}
33 changes: 22 additions & 11 deletions level-1/음양-더하기.js
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,41 @@
//정답 1 - codeisneverod
function solution(absolutes, signs) {
var answer = 123456789;
answer = absolutes.reduce((a, b, i) => a + b * (signs[i] ? 1 : -1), 0)
answer = absolutes.reduce((a, b, i) => a + b * (signs[i] ? 1 : -1), 0);
return answer;
}

//정답 2 - codeisneverod
function solution(absolutes, signs) {
var answer = 0;
for (let i = 0; i < absolutes.length; i++) {
answer += signs[i] ? absolutes[i] : -1 * absolutes[i]
answer += signs[i] ? absolutes[i] : -1 * absolutes[i];
}
return answer;
}

//정답 3 - jaewon1676
function solution(absolutes, signs) {
var answer = 0
for(var i=0; i<absolutes.length; i++){
if (signs[i] === false){
answer = answer - absolutes[i]
}
else{
answer = answer + absolutes[i]
var answer = 0;
for (var i = 0; i < absolutes.length; i++) {
if (signs[i] === false) {
answer = answer - absolutes[i];
} else {
answer = answer + absolutes[i];
}
}


return answer;
}

// 정답 4 - prove-ability
function solution(absolutes, signs) {
var answer = 0;

for (let i = 0, len = absolutes.length; i < len; i++) {
if (!signs[i]) answer += absolutes[i] * -1;
else answer += absolutes[i];
}

return answer;
}
}
4 changes: 2 additions & 2 deletions level-1/짝수와-홀수.js
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ function solution(num) {

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

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

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