Repository: DEEPDIVE-coding-potatoes/Algorithm
Pull request #40: Test : 2025-03-17 코딩테스트
Author: login: soyeon0116
Created: 2025-03-17T07:24:26Z | Merged: 2025-03-17T07:55:50Z

## 📆 공부 일자

> ex. 20250317

## 📝 공부 내용

>1. sort () 
 array.sort(function(a,b) {
	a - b : 오름차순
	b - a : 내림차순
})

> 2. Array.from()
console.log(Array.from("foo")); // Array ["f", "o", "o"]

숫자 배열 만들기
Array.from({ length: 5 }, (v, i) => i);
// [0, 1, 2, 3, 4]

### 스크린샷 (선택)

## 💬 리뷰 요구사항(선택)

> 리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요
>
> 



Diff:
diff --git "a/\352\271\200\354\206\214\354\227\260/ad\354\240\234\352\261\260\355\225\230\352\270\260.js" "b/\352\271\200\354\206\214\354\227\260/ad\354\240\234\352\261\260\355\225\230\352\270\260.js"
new file mode 100644
index 0000000..af47245
--- /dev/null
+++ "b/\352\271\200\354\206\214\354\227\260/ad\354\240\234\352\261\260\355\225\230\352\270\260.js"
@@ -0,0 +1,6 @@
+// ad 제거하기
+// 문자열 배열 strArr가 주어집니다. 배열 내의 문자열 중 "ad"라는 부분 문자열을 포함하고 있는 모든 문자열을 제거하고 남은 문자열을 순서를 유지하여 배열로 return 하는 solution 함수를 완성해 주세요.
+
+function solution(strArr) {
+  return strArr.filter(v => !v.includes('ad'));
+}
\ No newline at end of file
diff --git "a/\352\271\200\354\206\214\354\227\260/\352\263\265\353\260\261\354\234\274\353\241\234\352\265\254\353\266\204\355\225\230\352\270\2602.js" "b/\352\271\200\354\206\214\354\227\260/\352\263\265\353\260\261\354\234\274\353\241\234\352\265\254\353\266\204\355\225\230\352\270\2602.js"
new file mode 100644
index 0000000..e9b087e
--- /dev/null
+++ "b/\352\271\200\354\206\214\354\227\260/\352\263\265\353\260\261\354\234\274\353\241\234\352\265\254\353\266\204\355\225\230\352\270\2602.js"
@@ -0,0 +1,8 @@
+// 공백으로 구분하기 2
+// 단어가 공백 한 개 이상으로 구분되어 있는 문자열 my_string이 매개변수로 주어질 때, my_string에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
+
+function solution(my_string) {
+  return my_string.split(' ').filter(v => v !== '');
+}
+
+// return my_string.split(' ').filter(v => v);
\ No newline at end of file
diff --git "a/\352\271\200\354\206\214\354\227\260/\353\216\237\354\205\210\354\213\235\354\266\234\353\240\245js" "b/\352\271\200\354\206\214\354\227\260/\353\216\237\354\205\210\354\213\235\354\266\234\353\240\245.js"
similarity index 100%
rename from "\352\271\200\354\206\214\354\227\260/\353\216\237\354\205\210\354\213\235\354\266\234\353\240\245js"
rename to "\352\271\200\354\206\214\354\227\260/\353\216\237\354\205\210\354\213\235\354\266\234\353\240\245.js"
diff --git "a/\352\271\200\354\206\214\354\227\260/\353\221\220\354\210\230\354\235\230\354\227\260\354\202\260\352\260\222\353\271\204\352\265\220\355\225\230\352\270\260.js" "b/\352\271\200\354\206\214\354\227\260/\353\221\220\354\210\230\354\235\230\354\227\260\354\202\260\352\260\222\353\271\204\352\265\220\355\225\230\352\270\260.js"
new file mode 100644
index 0000000..7cebc02
--- /dev/null
+++ "b/\352\271\200\354\206\214\354\227\260/\353\221\220\354\210\230\354\235\230\354\227\260\354\202\260\352\260\222\353\271\204\352\265\220\355\225\230\352\270\260.js"
@@ -0,0 +1,15 @@
+// 두 수의 연산값 비교하기
+// 연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
+
+// 12 ⊕ 3 = 123
+// 3 ⊕ 12 = 312
+// 양의 정수 a와 b가 주어졌을 때, a ⊕ b와 2 * a * b 중 더 큰 값을 return하는 solution 함수를 완성해 주세요.
+
+// 단, a ⊕ b와 2 * a * b가 같으면 a ⊕ b를 return 합니다.
+
+function solution(a, b) {
+  let plus = Number(String(a) + String(b));
+  let multiply = 2 * a * b;
+  
+  return plus >= multiply ? plus : multiply;
+}
\ No newline at end of file
diff --git "a/\352\271\200\354\206\214\354\227\260/\353\222\244\354\227\220\354\204\2345\353\223\261\354\234\204\353\241\234.js" "b/\352\271\200\354\206\214\354\227\260/\353\222\244\354\227\220\354\204\2345\353\223\261\354\234\204\353\241\234.js"
new file mode 100644
index 0000000..c6ed9d6
--- /dev/null
+++ "b/\352\271\200\354\206\214\354\227\260/\353\222\244\354\227\220\354\204\2345\353\223\261\354\234\204\353\241\234.js"
@@ -0,0 +1,6 @@
+// 뒤에서 5등 위로
+// 정수로 이루어진 리스트 num_list가 주어집니다. num_list에서 가장 작은 5개의 수를 제외한 수들을 오름차순으로 담은 리스트를 return하도록 solution 함수를 완성해주세요..
+
+function solution(num_list) {
+  return num_list.sort((a,b) => a - b).slice(5);
+}
\ No newline at end of file
diff --git "a/\352\271\200\354\206\214\354\227\260/\353\254\270\354\236\220\354\227\264\353\241\234\353\263\200\355\231\230.js" "b/\352\271\200\354\206\214\354\227\260/\353\254\270\354\236\220\354\227\264\353\241\234\353\263\200\355\231\230.js"
new file mode 100644
index 0000000..424fdba
--- /dev/null
+++ "b/\352\271\200\354\206\214\354\227\260/\353\254\270\354\236\220\354\227\264\353\241\234\353\263\200\355\231\230.js"
@@ -0,0 +1,8 @@
+// 문자열로 변환
+// 정수 n이 주어질 때, n을 문자열로 변환하여 return하도록 solution 함수를 완성해주세요.
+
+function solution(n) {
+  return n.toString();
+}
+
+// return String(n);
\ No newline at end of file
diff --git "a/\352\271\200\354\206\214\354\227\260/\353\254\270\354\236\220\354\227\264\354\240\225\354\210\230\354\235\230\355\225\251.js" "b/\352\271\200\354\206\214\354\227\260/\353\254\270\354\236\220\354\227\264\354\240\225\354\210\230\354\235\230\355\225\251.js"
new file mode 100644
index 0000000..18b9fec
--- /dev/null
+++ "b/\352\271\200\354\206\214\354\227\260/\353\254\270\354\236\220\354\227\264\354\240\225\354\210\230\354\235\230\355\225\251.js"
@@ -0,0 +1,6 @@
+//문자열 정수의 합
+// 한 자리 정수로 이루어진 문자열 num_str이 주어질 때, 각 자리수의 합을 return하도록 solution 함수를 완성해주세요.
+
+function solution(num_str) {
+  return [...num_str].reduce((a,b) => Number(a) + Number(b));;
+}
\ No newline at end of file
diff --git "a/\352\271\200\354\206\214\354\227\260/\353\260\260\354\227\264\353\247\214\353\223\244\352\270\2603.js" "b/\352\271\200\354\206\214\354\227\260/\353\260\260\354\227\264\353\247\214\353\223\244\352\270\2603.js"
new file mode 100644
index 0000000..0ffaa0c
--- /dev/null
+++ "b/\352\271\200\354\206\214\354\227\260/\353\260\260\354\227\264\353\247\214\353\223\244\352\270\2603.js"
@@ -0,0 +1,14 @@
+//배열 만들기 3
+// 정수 배열 arr와 2개의 구간이 담긴 배열 intervals가 주어집니다.
+
+// intervals는 항상 [[a1, b1], [a2, b2]]의 꼴로 주어지며 각 구간은 닫힌 구간입니다. 닫힌 구간은 양 끝값과 그 사이의 값을 모두 포함하는 구간을 의미합니다.
+
+// 이때 배열 arr의 첫 번째 구간에 해당하는 배열과 두 번째 구간에 해당하는 배열을 앞뒤로 붙여 새로운 배열을 만들어 return 하는 solution 함수를 완성해 주세요.
+
+function solution(arr, intervals) {
+  let [[a,b],[c,d]]= intervals;
+  let first = arr.slice(a, b+1);
+  let sec = arr.slice(c,d+1);
+  
+  return [...first,...sec]
+}
\ No newline at end of file
diff --git "a/\352\271\200\354\206\214\354\227\260/\355\212\271\353\263\204\355\225\234\354\235\264\354\260\250\354\233\220\353\260\260\354\227\2641.js" "b/\352\271\200\354\206\214\354\227\260/\355\212\271\353\263\204\355\225\234\354\235\264\354\260\250\354\233\220\353\260\260\354\227\2641.js"
new file mode 100644
index 0000000..204c431
--- /dev/null
+++ "b/\352\271\200\354\206\214\354\227\260/\355\212\271\353\263\204\355\225\234\354\235\264\354\260\250\354\233\220\353\260\260\354\227\2641.js"
@@ -0,0 +1,32 @@
+//특별한 이차원 배열 1
+//정수 n이 매개변수로 주어질 때, 다음과 같은 n × n 크기의 이차원 배열 arr를 return 하는 solution 함수를 작성해 주세요.
+
+// arr[i][j] (0 ≤ i, j < n)의 값은 i = j라면 1, 아니라면 0입니다.
+
+
+function solution(n) {
+  var answer = []
+  let test = [];
+  for (let i = 0; i < n; i++) {
+    let arr = [];
+    for (let j = 0; j < n; j++) {
+      if (i === j) {
+        arr.push(1)
+      } else {
+        arr.push(0)
+      }
+    }
+    answer.push(arr);
+  }
+  return answer;
+}
+
+// function solution(n) {
+//   const answer = Array.from(Array(n), () => Array(n).fill(0));
+
+//   for (let i = 0; i < n; i++) {
+//     answer[i][i] = 1;
+//   }
+
+//   return answer;
+// }
\ No newline at end of file
diff --git "a/\352\271\200\354\206\214\354\227\260/\355\231\200\354\247\235\354\227\220\353\224\260\353\235\274\353\213\244\353\245\270\352\260\222\353\260\230\355\231\230\355\225\230\352\270\260.js" "b/\352\271\200\354\206\214\354\227\260/\355\231\200\354\247\235\354\227\220\353\224\260\353\235\274\353\213\244\353\245\270\352\260\222\353\260\230\355\231\230\355\225\230\352\270\260.js"
new file mode 100644
index 0000000..d95fc58
--- /dev/null
+++ "b/\352\271\200\354\206\214\354\227\260/\355\231\200\354\247\235\354\227\220\353\224\260\353\235\274\353\213\244\353\245\270\352\260\222\353\260\230\355\231\230\355\225\230\352\270\260.js"
@@ -0,0 +1,11 @@
+//홀짝에 따라 다른 값 반환하기
+
+// 양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.
+
+function solution(n) {
+  let numArray = Array.from({ length: n + 1 }, (v, i) => i);
+  let odd = numArray.filter(v => v % 2 !== 0).reduce((a,c) => a + c);
+  let even = numArray.filter(v => v % 2 === 0).reduce((a,c) => a + c **2);
+
+  return n % 2 !== 0 ? odd : even;
+}
\ No newline at end of file


Reviews:
user: login: gaeunchoi
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-17T07:38:54Z
user: login: yg5057
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-17T07:40:34Z
user: login: SinYusi
body: 오늘도 고생하셨습니다~
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-17T07:43:01Z
user: login: soyeon0116
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-17T07:44:27Z

Review comments:
diff_hunk: @@ -0,0 +1,15 @@
+// 두 수의 연산값 비교하기
+// 연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
+
+// 12 ⊕ 3 = 123
+// 3 ⊕ 12 = 312
+// 양의 정수 a와 b가 주어졌을 때, a ⊕ b와 2 * a * b 중 더 큰 값을 return하는 solution 함수를 완성해 주세요.
+
+// 단, a ⊕ b와 2 * a * b가 같으면 a ⊕ b를 return 합니다.
+
+function solution(a, b) {
+  let plus = Number(String(a) + String(b));
+  let multiply = 2 * a * b;
+  
+  return plus >= multiply ? plus : multiply;
path: 김소연/두수의연산값비교하기.js
user: login: gaeunchoi
body: 이걸 한줄로 바꿀수 있답니당
return Math.max(2*a*b, Number(a + "" + b))
created_at: 2025-03-17T07:37:26Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,8 @@
+// 문자열로 변환
+// 정수 n이 주어질 때, n을 문자열로 변환하여 return하도록 solution 함수를 완성해주세요.
+
+function solution(n) {
+  return n.toString();
path: 김소연/문자열로변환.js
user: login: gaeunchoi
body: toString 메서드가 아니어도 String으로 형변환만 해주셔도 됩니다!
created_at: 2025-03-17T07:38:03Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,6 @@
+//문자열 정수의 합
+// 한 자리 정수로 이루어진 문자열 num_str이 주어질 때, 각 자리수의 합을 return하도록 solution 함수를 완성해주세요.
+
+function solution(num_str) {
+  return [...num_str].reduce((a,b) => Number(a) + Number(b));;
path: 김소연/문자열정수의합.js
user: login: gaeunchoi
body: Number(a) + Number(b) => +a + +b로 표현가능해요 !
created_at: 2025-03-17T07:38:39Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,6 @@
+// ad 제거하기
+// 문자열 배열 strArr가 주어집니다. 배열 내의 문자열 중 "ad"라는 부분 문자열을 포함하고 있는 모든 문자열을 제거하고 남은 문자열을 순서를 유지하여 배열로 return 하는 solution 함수를 완성해 주세요.
+
+function solution(strArr) {
path: 김소연/ad제거하기.js
user: login: SinYusi
body: 소연님도 한 줄 코딩에 입문해보시져. 코드 body에 return문 한 줄만 있다면 함수 표현식을 활용하는 것이 깔끔하더라고요
created_at: 2025-03-17T07:39:20Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,8 @@
+// 문자열로 변환
+// 정수 n이 주어질 때, n을 문자열로 변환하여 return하도록 solution 함수를 완성해주세요.
+
+function solution(n) {
+  return n.toString();
path: 김소연/문자열로변환.js
user: login: yg5057
body: n.toString()도 좋지만  ->  String(n);
이렇게 쓰시는게 좀 더 명시적으로 보일것 같습니당!!
created_at: 2025-03-17T07:40:34Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,11 @@
+//홀짝에 따라 다른 값 반환하기
+
+// 양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.
+
+function solution(n) {
+  let numArray = Array.from({ length: n + 1 }, (v, i) => i);
path: 김소연/홀짝에따라다른값반환하기.js
user: login: SinYusi
body: js 함수를 정말 잘 쓰시네요.. from은 무슨 함수일까요??
created_at: 2025-03-17T07:41:16Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,6 @@
+//문자열 정수의 합
+// 한 자리 정수로 이루어진 문자열 num_str이 주어질 때, 각 자리수의 합을 return하도록 solution 함수를 완성해주세요.
+
+function solution(num_str) {
+  return [...num_str].reduce((a,b) => Number(a) + Number(b));;
path: 김소연/문자열정수의합.js
user: login: SinYusi
body: 세미콜론이 두 개나 들어가버렸네요 ㅋㅎ
created_at: 2025-03-17T07:42:32Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,11 @@
+//홀짝에 따라 다른 값 반환하기
+
+// 양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.
+
+function solution(n) {
+  let numArray = Array.from({ length: n + 1 }, (v, i) => i);
path: 김소연/홀짝에따라다른값반환하기.js
user: login: soyeon0116
body: > js 함수를 정말 잘 쓰시네요.. from은 무슨 함수일까요??

저도 오늘 앞에 문제 풀다가 다른사람풀이에서 알게되서 한번 써봤어요!

요기 참고 하십숑!!
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/from
created_at: 2025-03-17T07:44:26Z
author_association: CONTRIBUTOR

PR comments:
user: login: gaeunchoi
created_at: 2025-03-17T07:41:03Z
body: js에서 sort는 요소를 `사전순으로 정렬`해서 숫자 오름차순, 내림차순에선 sort((a, b) => a-b); 요론 조건을 써야한답니당 
조건을 사용하는 이유도 알면 좋을것 같아서 적었어요 :)

코드가 많이 깔끔해지고있는것같아 좋네요 오늘도 고생하셨습니다! 
author_association: CONTRIBUTOR
user: login: yg5057
created_at: 2025-03-17T07:43:17Z
body: 항상 풀이하면서 배운내용을 적어주셔서 저도 리마인드 하기 좋네용!!
오늘도 수고하셨습니다!! 이번주도 화이팅🔥🔥
author_association: CONTRIBUTOR
user: login: ksy21019
created_at: 2025-03-17T07:47:01Z
body: 항상 배운 내용도 함께 적어주셔서 좋은 것 같아요!! 오늘도 수고 많으셨습니다!! :)
author_association: CONTRIBUTOR