Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
71 changes: 36 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,45 +1,50 @@
# lunchmukgo-algorithm
매주 **화요일·금요일 오후 12시(점심시간)** 에 모여 알고리즘 문제 풀이를 공유하고 토론합니다.
매주 **목요일 오전 11:30 (KST)** 에 밥을 먹으면서, 전날까지 푼 알고리즘 문제를 함께 복기하고 PR 리뷰를 진행합니다.

알고리즘 문제를 꾸준히 풀며 **문제 해결 능력(사고력/구현력/최적화 감각)** 을 기르고,
서로의 풀이를 리뷰하면서 **다양한 접근법과 더 나은 코드 스타일**을 배우는 것을 목표로 합니다.
서로의 풀이를 리뷰하면서 **다양한 접근법과 더 나은 코드 스타일**을 배우는 것을 목표로 합니다.
핵심 흐름은 **수요일 밤까지 풀이와 PR 업로드를 끝내고, 목요일 점심 시간에 복기와 리뷰를 진행하는 것**입니다.

<br />
<br />

## 📅 스터디 일정

- **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 업로드를 완료하는 것**입니다.

<br />
<br />

## 🧭 문제 풀이 방법

### 문제 구성
- 매주 총 **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. 머지 후, 필요하면 회고(배운 점/실수 포인트)를 남깁니다. (선택)

<br />
<br />
Expand All @@ -48,10 +53,10 @@

### 1) 문제 풀이 규칙
- 문제는 **스터디(미팅) 전까지만** 풀어오면 됩니다.
- 주간 목표는 **총 4문제**
- **화요일 전까지 2문제**
- **금요일 전까지 2문제**
- 풀이 PR은 해당 스터디 미팅 전까지 올리는 것을 원칙으로 합니다.
- 주간 목표는 **프로그래머스 3문제**
- 문제 선정 기본 기준은 **Java / JavaScript / 정답률 높은 순 / Lv.2** 입니다.
- 풀이 PR은 **매주 수요일 23:59:59 전까지 주 1회 업로드**하는 것을 원칙으로 합니다.
- SQL 문제는 정규 3문제를 대체하지 않으며, **가끔 추가로 함께 진행**합니다.

### 2) PR 제출 규칙
- PR에는 아래 내용이 포함되어야 합니다.
Expand All @@ -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은 정규 주간 문제와 별개로, 필요할 때 추가 문제로 함께 진행합니다.

<br />
<br />
Expand All @@ -90,7 +96,7 @@
### Repository Structure

각자 **본인 GitHub 계정명 폴더** 아래에 풀이 파일을 추가합니다.
해당 주차 및 요일에 맞게 파일 추가 -> 커밋 후 master 브랜치에 머지될 수 있도록 PR을 업로드합니다.
해당 주차 기준으로 파일을 추가하고, 커밋 후 머지될 수 있도록 **주간 1회 PR**을 업로드합니다.

### 파일 네이밍 규칙
- 기본: `{ProblemTitle}.{ext}`
Expand All @@ -106,17 +112,14 @@

### 🏷 PR 타이틀 컨벤션

- 화요일 PR: `[WEEK01-1] {이름}`
- 금요일 PR: `[WEEK01-2] {이름}`
- 주간 PR: `[WEEK01-1] {이름}`

예)
- `[WEEK01-1] 추슬기`
- `[WEEK01-2] 추슬기`

<br />
<br />


## 스터디원

| Name | GitHub | Language |
Expand All @@ -126,5 +129,3 @@
| 추슬기 | https://github.com/doitchuu | TS/JS |

> 멤버 추가 시: PR로 이 표에 본인 정보 추가해주세요.


19 changes: 19 additions & 0 deletions doitchuu/MoveZeroes.js
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저랑 완전 풀이가 같네요!!!

Original file line number Diff line number Diff line change
@@ -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++;
}
};
34 changes: 34 additions & 0 deletions doitchuu/PalindromeLinkedList.js
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

역시 배열로 푸셨군요!
투 포인터를 금방 떠올리기가 쉽지 않은 것 같아요ㅠ

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

역시 배열! ㅋㅋㅋ 배열에 값을 저장한 뒤 뒤에서부터 꺼내 비교하는 방식이라 직관적으로 잘 구현하신 것 같습니다~!

Original file line number Diff line number Diff line change
@@ -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;
};