diff --git a/README.md b/README.md
index 2829acf..787d8fa 100644
--- a/README.md
+++ b/README.md
@@ -1,25 +1,24 @@
# lunchmukgo-algorithm
-매주 **화요일·금요일 오후 12시(점심시간)** 에 모여 알고리즘 문제 풀이를 공유하고 토론합니다.
+매주 **목요일 오전 11:30 (KST)** 에 밥을 먹으면서, 전날까지 푼 알고리즘 문제를 함께 복기하고 PR 리뷰를 진행합니다.
알고리즘 문제를 꾸준히 풀며 **문제 해결 능력(사고력/구현력/최적화 감각)** 을 기르고,
-서로의 풀이를 리뷰하면서 **다양한 접근법과 더 나은 코드 스타일**을 배우는 것을 목표로 합니다.
+서로의 풀이를 리뷰하면서 **다양한 접근법과 더 나은 코드 스타일**을 배우는 것을 목표로 합니다.
+핵심 흐름은 **수요일 밤까지 풀이와 PR 업로드를 끝내고, 목요일 점심 시간에 복기와 리뷰를 진행하는 것**입니다.
## 📅 스터디 일정
-- **Meeting**: 매주 **화요일 / 금요일 12:00 (KST)**
-- **Weekly Problems**: 주간 총 **4문제**
- - **화요일 미팅 전까지 2문제**
- - **금요일 미팅 전까지 2문제**
-- 문제는 **미팅 전까지 풀어오기만 하면 OK** (미팅에서 풀이/리뷰 공유)
+- **Meeting**: 매주 **목요일 11:30 (KST)**
+- **Weekly Problems**: 주간 총 **3문제**
+- **Review Flow**: 목요일 점심 시간에 **복기 + PR 리뷰** 진행
### 제출/진행 마감
-- **화요일 오후 12:00 전까지:** 2문제 풀이 PR 올리기
-- **금요일 오후 12:00 전까지:** 나머지 2문제 풀이 PR 올리기
+- **매주 수요일 23:59:59 (KST) 전까지:** 프로그래머스 **3문제 풀이 PR 업로드 완료**
+- **매주 목요일 11:30 (KST):** 식사하면서 지난 주차 풀이 복기 및 열린 PR 리뷰 진행
-> 상황에 따라 미리 풀어도 되며, 핵심은 “각 미팅 전까지 해당 분량을 풀어오는 것”을 목표로 합니다.
+> 상황에 따라 미리 풀어도 되며, 핵심은 **수요일 밤 마감 전까지 주간 3문제 풀이와 PR 업로드를 완료하는 것**입니다.
@@ -27,19 +26,25 @@
## 🧭 문제 풀이 방법
### 문제 구성
-- 매주 총 **4문제**
-- 난이도는 주차별로 조절
+- 매주 프로그래머스 기준 **총 3문제**
+- 기본 필터 기준
+ - **언어: Java / JavaScript**
+ - **정답률: 높은 순**
+ - **난이도: Lv.2**
+- **SQL 문제는 기본 3문제와 별개로**, 필요할 때 가끔 함께 풀이합니다.
### 풀이 방법
-1. 운영자가(또는 돌아가며) **주간 4문제**를 공지합니다. (Issue/README/노션 등)
-2. 각자 문제를 풀고, **PR Template**에 맞춰 PR을 올립니다.
- - 화요일 전: 2문제 PR
- - 금요일 전: 추가 2문제 PR
-3. 각 PR은 **최소 2명의 리뷰 코멘트**가 있어야 `merge` 가능합니다.
-4. 미팅에서:
- - 각 문제별로 핵심 아이디어/시간복잡도/대안 풀이 공유
+1. 운영자가(또는 돌아가며) 프로그래머스에서 **주간 3문제**를 선정합니다.
+2. 선정 기준은 **Java / JavaScript / 정답률 높은 순 / Lv.2** 필터를 기본으로 합니다.
+3. 각자 문제를 풀고, **PR Template**에 맞춰 **주간 1회 PR**을 올립니다.
+ - 수요일 23:59:59 전까지 3문제 업로드 완료
+ - SQL은 진행하는 주차에 한해 별도로 함께 정리 가능
+4. 각 PR은 **최소 2명의 리뷰 코멘트**가 있어야 `merge` 가능합니다.
+5. 목요일 미팅에서:
+ - 각 문제별 핵심 아이디어 / 시간복잡도 / 대안 풀이 복기
+ - 열린 PR 리뷰 진행
- 리뷰에서 나온 포인트 정리
-5. 머지 후, 필요하면 회고(배운 점/실수 포인트)를 남깁니다. (선택)
+6. 머지 후, 필요하면 회고(배운 점/실수 포인트)를 남깁니다. (선택)
@@ -48,10 +53,10 @@
### 1) 문제 풀이 규칙
- 문제는 **스터디(미팅) 전까지만** 풀어오면 됩니다.
-- 주간 목표는 **총 4문제**
- - **화요일 전까지 2문제**
- - **금요일 전까지 2문제**
-- 풀이 PR은 해당 스터디 미팅 전까지 올리는 것을 원칙으로 합니다.
+- 주간 목표는 **프로그래머스 3문제**
+- 문제 선정 기본 기준은 **Java / JavaScript / 정답률 높은 순 / Lv.2** 입니다.
+- 풀이 PR은 **매주 수요일 23:59:59 전까지 주 1회 업로드**하는 것을 원칙으로 합니다.
+- SQL 문제는 정규 3문제를 대체하지 않으며, **가끔 추가로 함께 진행**합니다.
### 2) PR 제출 규칙
- PR에는 아래 내용이 포함되어야 합니다.
@@ -75,12 +80,13 @@
- 기준: 2,000원 이내 × 2잔 (바나프레소 / 매머드커피 / 메가커피 등)
**적용 케이스**
-- 화요일 전 1문제 PR 미제출: 커피 2잔
-- 금요일 전 2문제 PR 미제출: 커피 2잔
+- 수요일 23:59:59 전까지 주간 3문제 PR 미업로드: 커피 2잔
+- 목요일 리뷰를 남기지 않았거나 복기에 참여하지 못한 경우: 커피 2잔
### 5) 문제 선정 규칙
-- (선택 1) 운영자가 주간 4문제 선정
-- (선택 2) 멤버가 돌아가며 1문제씩 추천 → 4문제 확정
+- 기본은 프로그래머스에서 **Java / JavaScript / 정답률 높은 순 / Lv.2** 필터 기준으로 선정합니다.
+- 운영자가 주간 3문제를 선정하거나, 멤버가 후보를 제안한 뒤 최종 3문제를 확정합니다.
+- SQL은 정규 주간 문제와 별개로, 필요할 때 추가 문제로 함께 진행합니다.
@@ -90,7 +96,7 @@
### Repository Structure
각자 **본인 GitHub 계정명 폴더** 아래에 풀이 파일을 추가합니다.
-해당 주차 및 요일에 맞게 파일 추가 -> 커밋 후 master 브랜치에 머지될 수 있도록 PR을 업로드합니다.
+해당 주차 기준으로 파일을 추가하고, 커밋 후 머지될 수 있도록 **주간 1회 PR**을 업로드합니다.
### 파일 네이밍 규칙
- 기본: `{ProblemTitle}.{ext}`
@@ -106,17 +112,14 @@
### 🏷 PR 타이틀 컨벤션
-- 화요일 PR: `[WEEK01-1] {이름}`
-- 금요일 PR: `[WEEK01-2] {이름}`
+- 주간 PR: `[WEEK01-1] {이름}`
예)
- `[WEEK01-1] 추슬기`
-- `[WEEK01-2] 추슬기`
-
## 스터디원
| Name | GitHub | Language |
@@ -126,5 +129,3 @@
| 추슬기 | https://github.com/doitchuu | TS/JS |
> 멤버 추가 시: PR로 이 표에 본인 정보 추가해주세요.
-
-
diff --git a/doitchuu/MoveZeroes.js b/doitchuu/MoveZeroes.js
new file mode 100644
index 0000000..6f7faf3
--- /dev/null
+++ b/doitchuu/MoveZeroes.js
@@ -0,0 +1,19 @@
+/**
+ * @param {number[]} nums
+ * @return {void}
+ */
+var moveZeroes = function(nums) {
+ let index = 0;
+
+ for (let i = 0; i < nums.length; i++) {
+ if (nums[i] !== 0) {
+ nums[index] = nums[i];
+ index++;
+ }
+ }
+
+ while (index < nums.length) {
+ nums[index] = 0;
+ index++;
+ }
+};
diff --git a/doitchuu/PalindromeLinkedList.js b/doitchuu/PalindromeLinkedList.js
new file mode 100644
index 0000000..84e07ea
--- /dev/null
+++ b/doitchuu/PalindromeLinkedList.js
@@ -0,0 +1,34 @@
+/**
+ * Definition for singly-linked list.
+ * function ListNode(val, next) {
+ * this.val = (val===undefined ? 0 : val)
+ * this.next = (next===undefined ? null : next)
+ * }
+ */
+/**
+ * @param {ListNode} head
+ * @return {boolean}
+ */
+var isPalindrome = function(head) {
+ const stack = [];
+ let current = head;
+
+ while (current) {
+ stack.push(current.val);
+ current = current.next;
+ }
+
+ current = head;
+
+ while (current) {
+ const last = stack.pop();
+
+ if (last !== current.val) {
+ return false;
+ }
+
+ current = current.next;
+ }
+
+ return true;
+};