Repository: DEEPDIVE-coding-potatoes/Algorithm
Pull request #17: Test : 2025-03-10코딩테스트
Author: login: soyeon0116
Created: 2025-03-10T07:29:41Z | Merged: 2025-03-10T08:16:01Z

## 📆 공부 일자

>20250310

## 📝 공부 내용

> Index 찾기
- 배열에서 찾은 첫번째 요소가 필요한 경우 find()
- 배열에서 찾은 요소의 인덱스가 필요한 경우 findIndex()
- 값의 인덱스를 찾아야 하는 경우 indexOf()

1. find() 
 - 조건에 맞는 첫 번째 요소 반환
 - 조건에 맞는 요소가 없다면 undefined 반환

2. findIndex 
 - 조건에 맞는 첫 번째 요소의 인덱스 반환
 - 조건메 맞는 요소가 없다면 -1 반환

3. indexOf(찾을 요소, 시작할 인덱스)
 - 시작할 인덱스는 생략 가능, 생략한다면 처음부터 찾는다.
 - 찾는 요소가 있다면 가장 첫번째 요소의 인덱스를 반환한다.
 - 찾는 요소가 없다면 -1을 반환한다.

for문에서 배수만큼 커지게 하고 싶을 땐 'i += 배수' 를 써주는 방법이 있다.

### 스크린샷 (선택)

## 💬 리뷰 요구사항(선택)

> 리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요
>
> ex. 이런 문제를 풀 때 어떤 메서드를 사용하면 좋을까요?



Diff:
diff --git "a/\352\271\200\354\206\214\354\227\260/test10.js" "b/\352\271\200\354\206\214\354\227\260/test10.js"
new file mode 100644
index 0000000..e4cdbc3
--- /dev/null
+++ "b/\352\271\200\354\206\214\354\227\260/test10.js"
@@ -0,0 +1,6 @@
+//n개 간격의 원소들
+// 정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 마지막 원소까지 n개 간격으로 저장되어있는 원소들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.
+
+function solution(num_list, n) {
+  return arr = num_list.filter((v,i) => i % n === 0)
+}
\ No newline at end of file
diff --git "a/\352\271\200\354\206\214\354\227\260/test11.js" "b/\352\271\200\354\206\214\354\227\260/test11.js"
new file mode 100644
index 0000000..c0fdd0a
--- /dev/null
+++ "b/\352\271\200\354\206\214\354\227\260/test11.js"
@@ -0,0 +1,6 @@
+//n번째 원소까지
+// 정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 n 번째 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성해주세요.
+
+function solution(num_list, n) {
+  return num_list.slice(0,n);
+}
\ No newline at end of file
diff --git "a/\352\271\200\354\206\214\354\227\260/test12.js" "b/\352\271\200\354\206\214\354\227\260/test12.js"
new file mode 100644
index 0000000..7040ecf
--- /dev/null
+++ "b/\352\271\200\354\206\214\354\227\260/test12.js"
@@ -0,0 +1,9 @@
+//순서바꾸기
+// 정수 리스트 num_list와 정수 n이 주어질 때, num_list를 n 번째 원소 이후의 원소들과 n 번째까지의 원소들로 나눠 n 번째 원소 이후의 원소들을 n 번째까지의 원소들 앞에 붙인 리스트를 return하도록 solution 함수를 완성해주세요.
+
+function solution(num_list, n) {
+  let frontList = num_list.slice(0,n);
+  let backList = num_list.slice(n);
+  
+  return backList.concat(frontList)
+}
\ No newline at end of file
diff --git "a/\352\271\200\354\206\214\354\227\260/test13.js" "b/\352\271\200\354\206\214\354\227\260/test13.js"
new file mode 100644
index 0000000..2eeeb06
--- /dev/null
+++ "b/\352\271\200\354\206\214\354\227\260/test13.js"
@@ -0,0 +1,6 @@
+//n번째 원소부터
+// 정수 리스트 num_list와 정수 n이 주어질 때, n 번째 원소부터 마지막 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성해주세요.
+
+function solution(num_list, n) {
+  return num_list.slice(n-1);
+}
\ No newline at end of file
diff --git "a/\352\271\200\354\206\214\354\227\260/test14.js" "b/\352\271\200\354\206\214\354\227\260/test14.js"
new file mode 100644
index 0000000..672195a
--- /dev/null
+++ "b/\352\271\200\354\206\214\354\227\260/test14.js"
@@ -0,0 +1,6 @@
+//첫 번째로 나오는 음수
+// 정수 리스트 num_list가 주어질 때, 첫 번째로 나오는 음수의 인덱스를 return하도록 solution 함수를 완성해주세요. 음수가 없다면 -1을 return합니다.
+
+function solution(num_list) {
+  return num_list.findIndex((v) => v < 0);
+}
\ No newline at end of file
diff --git "a/\352\271\200\354\206\214\354\227\260/test15.js" "b/\352\271\200\354\206\214\354\227\260/test15.js"
new file mode 100644
index 0000000..bb54dac
--- /dev/null
+++ "b/\352\271\200\354\206\214\354\227\260/test15.js"
@@ -0,0 +1,8 @@
+//가까운 1찾기
+// 정수 배열 arr가 주어집니다. 이때 arr의 원소는 1 또는 0입니다. 정수 idx가 주어졌을 때, idx보다 크면서 배열의 값이 1인 가장 작은 인덱스를 찾아서 반환하는 solution 함수를 완성해 주세요.
+
+// 단, 만약 그러한 인덱스가 없다면 -1을 반환합니다.
+
+function solution(arr, idx) {
+  return arr.indexOf(1, idx);
+}
\ No newline at end of file
diff --git "a/\352\271\200\354\206\214\354\227\260/test16.js" "b/\352\271\200\354\206\214\354\227\260/test16.js"
new file mode 100644
index 0000000..9b8b65d
--- /dev/null
+++ "b/\352\271\200\354\206\214\354\227\260/test16.js"
@@ -0,0 +1,10 @@
+// 카운트다운
+// 정수 start_num와 end_num가 주어질 때, start_num에서 end_num까지 1씩 감소하는 수들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.
+
+function solution(start_num, end_num) {
+  let answer = [];
+  for(let i = start_num; i >= end_num ; i--){
+    answer.push(i)
+  }
+  return answer
+}
\ No newline at end of file
diff --git "a/\352\271\200\354\206\214\354\227\260/test17.js" "b/\352\271\200\354\206\214\354\227\260/test17.js"
new file mode 100644
index 0000000..1b6d981
--- /dev/null
+++ "b/\352\271\200\354\206\214\354\227\260/test17.js"
@@ -0,0 +1,16 @@
+//배열 만들기 1
+// 정수 n과 k가 주어졌을 때, 1 이상 n이하의 정수 중에서 k의 배수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
+
+function solution(n, k) {
+  let answer = [];
+  for(let i = 1 ; i <= n; i++){
+    if(i % k === 0){
+      answer.push(i)
+    }
+  }
+  return answer;
+}
+
+//for(let i = k ; i <= n; i+=k){
+//   answer.push(i)
+// }
\ No newline at end of file
diff --git "a/\352\271\200\354\206\214\354\227\260/test9.js" "b/\352\271\200\354\206\214\354\227\260/test9.js"
new file mode 100644
index 0000000..0e363fe
--- /dev/null
+++ "b/\352\271\200\354\206\214\354\227\260/test9.js"
@@ -0,0 +1,16 @@
+// 홀수 짝수
+// 정수 리스트 num_list가 주어집니다. 가장 첫 번째 원소를 1번 원소라고 할 때, 홀수 번째 원소들의 합과 짝수 번째 원소들의 합 중 큰 값을 return 하도록 solution 함수를 완성해주세요. 두 값이 같을 경우 그 값을 return합니다.
+
+function solution(num_list) {
+  let evenSum = 0;
+  let oddSum = 0;
+  num_list.forEach((v,i) => {
+    if(i % 2 === 0) {
+      evenSum += v;
+    } else {
+      oddSum += v;
+    }
+  })
+
+  return evenSum >= oddSum ? evenSum : oddSum;
+}
\ No newline at end of file


Reviews:
user: login: SinYusi
body: 오늘도 고생하셨습니다! js 고수 느낌이 나는군요. 함수 잘 활용하시네요 ㅎㅎ
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-10T07:48:01Z
user: login: soyeon0116
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-10T07:50:31Z

Review comments:
diff_hunk: @@ -0,0 +1,9 @@
+//순서바꾸기
+// 정수 리스트 num_list와 정수 n이 주어질 때, num_list를 n 번째 원소 이후의 원소들과 n 번째까지의 원소들로 나눠 n 번째 원소 이후의 원소들을 n 번째까지의 원소들 앞에 붙인 리스트를 return하도록 solution 함수를 완성해주세요.
+
+function solution(num_list, n) {
+  let frontList = num_list.slice(0,n);
+  let backList = num_list.slice(n);
+  
+  return backList.concat(frontList)
+}
path: 김소연/test12.js
user: login: SinYusi
body: 함수를 계속해서 사용해서 한 줄로 줄일 수 있겠네요!
return num_list.slice(0).concat(num_list.slice(0,n);
created_at: 2025-03-10T07:42:56Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,8 @@
+//가까운 1찾기
+// 정수 배열 arr가 주어집니다. 이때 arr의 원소는 1 또는 0입니다. 정수 idx가 주어졌을 때, idx보다 크면서 배열의 값이 1인 가장 작은 인덱스를 찾아서 반환하는 solution 함수를 완성해 주세요.
+
+// 단, 만약 그러한 인덱스가 없다면 -1을 반환합니다.
+
+function solution(arr, idx) {
+  return arr.indexOf(1, idx);
+}
path: 김소연/test15.js
user: login: SinYusi
body: wow 깔끔합니다.
created_at: 2025-03-10T07:46:15Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,9 @@
+//순서바꾸기
+// 정수 리스트 num_list와 정수 n이 주어질 때, num_list를 n 번째 원소 이후의 원소들과 n 번째까지의 원소들로 나눠 n 번째 원소 이후의 원소들을 n 번째까지의 원소들 앞에 붙인 리스트를 return하도록 solution 함수를 완성해주세요.
+
+function solution(num_list, n) {
+  let frontList = num_list.slice(0,n);
+  let backList = num_list.slice(n);
+  
+  return backList.concat(frontList)
+}
path: 김소연/test12.js
user: login: soyeon0116
body: 와..뭐야...
적으러 갑니다..ㅋㅋㅋ
created_at: 2025-03-10T07:50:30Z
author_association: CONTRIBUTOR

PR comments:
user: login: gaeunchoi
created_at: 2025-03-10T07:40:09Z
body: 소연님은 항상 공부하다가 배운거 풀이해서 올려주셔서 저도 모르는걸 새로이 알게 되네요 
감사합니다 :) 오늘도 수고하셨어요 !
author_association: CONTRIBUTOR
user: login: ksy21019
created_at: 2025-03-10T07:50:06Z
body: 새롭게 알게 된 점을 꼼꼼하게 정리 잘 하시는 것 같아요~ 오늘도 수고 많으셨습니다~
author_association: CONTRIBUTOR
user: login: yg5057
created_at: 2025-03-10T08:05:33Z
body: 다들 어떻게 이렇게 빨리푸시나요🥹
9문제 풀고 나서 알게된 내용 정리까지!! 완벽하네요!
오늘도 수고많으셨습니다 :)
author_association: CONTRIBUTOR