From 3123e97bc4804e0db8f62390d7b51dccce3c26cb Mon Sep 17 00:00:00 2001 From: Sienna Date: Thu, 5 Feb 2026 02:56:56 +0900 Subject: [PATCH 1/7] chore: sync .github from main --- .github/ISSUE_TEMPLATE/goal_track.md | 78 +++++++++------- .github/ISSUE_TEMPLATE/goal_track_week.md | 32 ++++--- .github/PULL_REQUEST_TEMPLATE.md | 27 ++++-- .github/workflows/Discussion_Notifier.yml | 21 +++++ .github/workflows/PR_Notifier.yml | 27 ++++++ .github/workflows/PR_Reminder.yml | 24 +++++ .github/workflows/Solveit_Reminder.yml | 24 +++++ .../workflows/create_weekly_goal_track.yml | 90 +++++++++++++++++++ ...354\234\204_\352\262\214\354\236\204_2.js" | 0 ...4_\353\247\214\353\223\244\352\270\260.js" | 0 ...0_\353\215\224\355\225\230\352\270\260.js" | 0 11 files changed, 270 insertions(+), 53 deletions(-) create mode 100644 .github/workflows/Discussion_Notifier.yml create mode 100644 .github/workflows/PR_Notifier.yml create mode 100644 .github/workflows/PR_Reminder.yml create mode 100644 .github/workflows/Solveit_Reminder.yml create mode 100644 .github/workflows/create_weekly_goal_track.yml create mode 100644 "sgoldenbird/level0/\354\243\274\354\202\254\354\234\204_\352\262\214\354\236\204_2.js" create mode 100644 "sgoldenbird/level0/\354\275\234\353\235\274\354\270\240_\354\210\230\354\227\264_\353\247\214\353\223\244\352\270\260.js" create mode 100644 "sgoldenbird/level1/\354\227\206\353\212\224_\354\210\253\354\236\220_\353\215\224\355\225\230\352\270\260.js" diff --git a/.github/ISSUE_TEMPLATE/goal_track.md b/.github/ISSUE_TEMPLATE/goal_track.md index 97c1939..d79a3b7 100644 --- a/.github/ISSUE_TEMPLATE/goal_track.md +++ b/.github/ISSUE_TEMPLATE/goal_track.md @@ -1,34 +1,38 @@ --- name: "goal-tracking" about: "Use this template for using issues as goal tracking items." -title: "`Week ~ Week ` Goal" -labels: "goal" -assignees: "" +title: "`Week ~ Week` Programmers level0 / level1" +labels: + - goal + - Programmers + - level 0 + - level 1 +assignees: "sgoldenbird" --- ## Goal -**Week**: 8주(기초 프로젝트 기간 3주 제외) +**Week**: 10weeks (2026. ~ 2026. ) -**Goal Description**: 매주 프로그래머스 레벨 0 2 문제씩 풀기 +**Goal Description**: Solve 3 coding challenges from Programmers Level 0 and Level 1 every week. -**Deadline**: 2025.05.17 SAT +**Deadline**: 2026.0. SUN --- ## Problems List -**week1** 2025.04.02-2025.04.8 +**week0** 2026. MON - 2026. SUN -- Problem 1 -- Problem 2 - -**week2** 2025.04.09-2025.04.15 - -- Problem 3 -- Problem 4 - ---- +**week1** 2026. MON - 2026. SUN +**week2** 2026. MON - 2026. SUN +**week3** 2026. MON - 2026. SUN +**week4** 2026. MON - 2026. SUN +**week5** 2026. MON - 2026. SUN +**week6** 2026. MON - 2026. SUN +**week7** 2026. MON - 2026. SUN +**week8** 2026. MON - 2026. SUN +**week9** 2026. MON - 2026. SUN ## Progress @@ -36,54 +40,62 @@ assignees: "" - **시은**: + - [ ] Complete `Week 0` - [ ] Complete `Week 1` - [ ] Complete `Week 2` - - [x] ~~Complete `Week 3`~~ - - [x] ~~Complete `Week 4`~~ - - [x] ~~Complete `Week 5`~~ + - [ ] Complete `Week 3` + - [ ] Complete `Week 4` + - [ ] Complete `Week 5` - [ ] Complete `Week 6` - [ ] Complete `Week 7` - [ ] Complete `Week 8` + - [ ] Complete `Week 9` - **수진**: + - [ ] Complete `Week 0` - [ ] Complete `Week 1` - [ ] Complete `Week 2` - - [x] ~~Complete `Week 3`~~ - - [x] ~~Complete `Week 4`~~ - - [x] ~~Complete `Week 5`~~ + - [ ] Complete `Week 3` + - [ ] Complete `Week 4` + - [ ] Complete `Week 5` - [ ] Complete `Week 6` - [ ] Complete `Week 7` - [ ] Complete `Week 8` + - [ ] Complete `Week 9` - **유진**: + - [ ] Complete `Week 0` - [ ] Complete `Week 1` - [ ] Complete `Week 2` - - [x] ~~Complete `Week 3`~~ - - [x] ~~Complete `Week 4`~~ - - [x] ~~Complete `Week 5`~~ + - [ ] Complete `Week 3` + - [ ] Complete `Week 4` + - [ ] Complete `Week 5` - [ ] Complete `Week 6` - [ ] Complete `Week 7` - [ ] Complete `Week 8` + - [ ] Complete `Week 9` - **인성**: + - [ ] Complete `Week 0` - [ ] Complete `Week 1` - [ ] Complete `Week 2` - - [x] ~~Complete `Week 3`~~ - - [x] ~~Complete `Week 4`~~ - - [x] ~~Complete `Week 5`~~ + - [ ] Complete `Week 3` + - [ ] Complete `Week 4` + - [ ] Complete `Week 5` - [ ] Complete `Week 6` - [ ] Complete `Week 7` - [ ] Complete `Week 8` + - [ ] Complete `Week 9` --- ## Checklist -- [ ] 모든 참여자가 모든 주차별 문제를 완료했습니다. -- [ ] 관련 이슈들을 모두 해결했습니다. -- [ ] 각 참여자의 PR이 해당 Week에 연결되어 있습니다. -- [ ] 참여자별 This Week's To-Do List가 주차별로 갱신되었습니다. -- [ ] 마일스톤이 이 목표와 연동되어 있습니다. +- [ ] All participants have completed all weekly problems. +- [ ] All related issues have been resolved. +- [ ] Each participant’s PR is linked to the corresponding week. +- [ ] Each participant’s “This Week’s To-Do List” has been updated weekly. +- [ ] The milestone is linked to this goal. diff --git a/.github/ISSUE_TEMPLATE/goal_track_week.md b/.github/ISSUE_TEMPLATE/goal_track_week.md index 3aaba16..d6f1f83 100644 --- a/.github/ISSUE_TEMPLATE/goal_track_week.md +++ b/.github/ISSUE_TEMPLATE/goal_track_week.md @@ -1,18 +1,22 @@ --- name: "weekly-goal-tracking" about: "Use this template for using issues as weekly goal tracking items." -title: "`Week `" -labels: "goal" -assignees: "" +title: "`Week`" +labels: + - goal + - Programmers + - level 0 + - level 1 +assignees: "sgoldenbird" --- ## Goal -**Week**: week1 2025.04.02 ~ 2025.04.09 +**Week**: 2026. MON ~ 2026. SUN -**Goal Description**: 2문제 풀기 +**Goal Description**: Solve 3 coding challenges from Programmers Level 0 and Level 1. -**Deadline**: 2025.04.15 SAT +**Deadline**: 2026. SUN --- @@ -24,29 +28,33 @@ assignees: "" - [ ] Solve `Problem 1` - [ ] Solve `Problem 2` + - [ ] Solve - **수진**: - [ ] Solve `Problem 1` - [ ] Solve `Problem 2` + - [ ] Solve - **유진**: - [ ] Solve `Problem 1` - [ ] Solve `Problem 2` + - [ ] Solve - **인성**: - [ ] Solve `Problem 1` - [ ] Solve `Problem 2` + - [ ] Solve --- ## Checklist -- [ ] 모든 참여자가 모든 문제를 풀었습니다. -- [ ] 참여자별 This Week's To-Do List가 업데이트되었습니다. -- [ ] 관련 이슈들을 모두 해결했습니다. -- [ ] 모든 문제에 대한 PR이 생성되었습니다. -- [ ] 모든 PR에 리뷰가 완료되었습니다. -- [ ] 관련 이슈 또는 질문이 Discussions에 공유되었습니다. (있을 경우). +- [ ] All participants have solved all problems. +- [ ] Each participant’s “This Week’s To-Do List” has been updated. +- [ ] All related issues have been resolved. +- [ ] PRs have been created for all problems. +- [ ] All PRs have been reviewed. +- [ ] Any related issues or questions have been shared in Discussions (if applicable). diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 09ead17..cb851cd 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -4,10 +4,11 @@ ### Progress -이번주 푼 문제에 체크해주세요. +Check off the problems you solved this week. - [x] 문자열 출력하기 -- [x] a와 b출력하기 +- [x] +- [x] ### Related Issues @@ -20,9 +21,19 @@ ### Checklist before creating a PR -- [ ] PR 제목은 `week1` 형식으로 작성했나요? -- [ ] Assignees에 PR 생성자 본인을 지정했나요? -- [ ] 출처, 난이도, 카테고리 등의 label을 모두 추가했나요? -- [ ] PR은 Projects를 **연동하지 마세요** -- [ ] Milestone에 해당 week을 연동했나요? -- [ ] Development에 해당 week을 연동했나요? +- [ ] 제목이 `week1` 형식을 따르고 있나요? +- [ ] 본인을 Assignee로 지정했나요? +- [ ] 관련 라벨(source, difficulty, category 등)을 모두 추가했나요? +- [ ] Projects에 연결하지 **마세요**. +- [ ] Milestone에 연결하지 **마세요**. +- [ ] Development의 해당 week(issue)에 연결했나요? + + diff --git a/.github/workflows/Discussion_Notifier.yml b/.github/workflows/Discussion_Notifier.yml new file mode 100644 index 0000000..ac3ff34 --- /dev/null +++ b/.github/workflows/Discussion_Notifier.yml @@ -0,0 +1,21 @@ +name: Notify Discord on New Discussion + +on: + discussion: + types: [created] + +jobs: + notify-discord: + runs-on: ubuntu-latest + steps: + - name: Send Discussion info to Discord + run: | + MESSAGE="**새 Discussion이 시작됐습니다**\n\n💬 **제목**: ${{ github.event.discussion.title }}\n🙋‍♀️ **작성자**: ${{ github.event.discussion.user.login }}\n🔗 [바로가기](${{ github.event.discussion.html_url }})" + + RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" -X POST \ + -H "Content-Type: application/json" \ + -H "Authorization: Bot ${{ secrets.REMINDER_BOT_TOKEN }}" \ + -d "{\"content\": \"$MESSAGE\"}" \ + https://discord.com/api/v10/channels/${{ secrets.DISCORD_CHANNEL_ID_SOLVEIT }}/messages) + + echo "Discord Response Code: $RESPONSE" diff --git a/.github/workflows/PR_Notifier.yml b/.github/workflows/PR_Notifier.yml new file mode 100644 index 0000000..73222ee --- /dev/null +++ b/.github/workflows/PR_Notifier.yml @@ -0,0 +1,27 @@ +name: Notify Discord on PR Created + +on: + pull_request: + types: [opened] + +jobs: + notify-discord: + runs-on: ubuntu-latest + steps: + - name: Send PR info to Discord + env: + PR_TITLE: ${{ github.event.pull_request.title }} + PR_USER: ${{ github.event.pull_request.user.login }} + PR_URL: ${{ github.event.pull_request.html_url }} + DISCORD_WEBHOOK: ${{ secrets.DISCORD_CHANNEL_ID_PR }} + BOT_TOKEN: ${{ secrets.REMINDER_BOT_TOKEN }} + run: | + MESSAGE="**새 PR이 생성됐습니다**\n\n📌 **제목**: \`${PR_TITLE}\`\n🙋‍♀️ **작성자**: ${PR_USER}\n🔗 [PR 바로가기](${PR_URL})" + + RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" -X POST \ + -H "Content-Type: application/json" \ + -H "Authorization: Bot ${BOT_TOKEN}" \ + -d "{\"content\": \"$MESSAGE\"}" \ + https://discord.com/api/v10/channels/${DISCORD_WEBHOOK}/messages) + + echo "Discord Response Code: $RESPONSE" diff --git a/.github/workflows/PR_Reminder.yml b/.github/workflows/PR_Reminder.yml new file mode 100644 index 0000000..25534fc --- /dev/null +++ b/.github/workflows/PR_Reminder.yml @@ -0,0 +1,24 @@ +name: PR Reminder + +on: + schedule: + - cron: "0 0 * * 5" # 매주 금요일 9:00 (UTC 기준으로 금 00:00) + workflow_dispatch: + +jobs: + send_message: + runs-on: ubuntu-latest + steps: + - name: Check environment variables + run: | + echo "DISCORD_CHANNEL_ID_PR=${{ secrets.DISCORD_CHANNEL_ID_PR}}" + echo "REMINDER_BOT_TOKEN=${{ secrets.REMINDER_BOT_TOKEN }}" + + - name: Notify PR Due Date + run: | + RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" -X POST \ + -H "Content-Type: application/json" \ + -H "Authorization: Bot ${{ secrets.REMINDER_BOT_TOKEN }}" \ + -d "{\"content\": \"잊지 말고 PR올리고 Approve 하자~!\"}" \ + https://discord.com/api/v10/channels/${{ secrets.DISCORD_CHANNEL_ID_PR }}/messages) + echo "Response: $RESPONSE" diff --git a/.github/workflows/Solveit_Reminder.yml b/.github/workflows/Solveit_Reminder.yml new file mode 100644 index 0000000..211abbc --- /dev/null +++ b/.github/workflows/Solveit_Reminder.yml @@ -0,0 +1,24 @@ +name: Solveit Reminder + +on: + schedule: + - cron: "0 0 * * 0" # 매주 일요일 9:00 (KST, UTC+9) + workflow_dispatch: + +jobs: + send_message: + runs-on: ubuntu-latest + steps: + - name: Check environment variables + run: | + echo "DISCORD_CHANNEL_ID_SOLVEIT=${{ secrets.DISCORD_CHANNEL_ID_SOLVEIT }}" + echo "REMINDER_BOT_TOKEN=${{ secrets.REMINDER_BOT_TOKEN }}" + + - name: Notify PR Due Date + run: | + RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" -X POST \ + -H "Content-Type: application/json" \ + -H "Authorization: Bot ${{ secrets.REMINDER_BOT_TOKEN }}" \ + -d "{\"content\": \"오늘 스터디 있어요~! 오후 10시에 Solveit에서 만나요~! \"}" \ + https://discord.com/api/v10/channels/${{ secrets.DISCORD_CHANNEL_ID_SOLVEIT }}/messages) + echo "Response: $RESPONSE" diff --git a/.github/workflows/create_weekly_goal_track.yml b/.github/workflows/create_weekly_goal_track.yml new file mode 100644 index 0000000..2278ca8 --- /dev/null +++ b/.github/workflows/create_weekly_goal_track.yml @@ -0,0 +1,90 @@ +name: Create Weekly Goal Track Issues + +on: + issues: + types: [opened] + +jobs: + create_weeks: + if: | + contains(github.event.issue.title, 'Week') && contains(github.event.issue.title, '~') && + ( + (github.event.action == 'opened' && contains(github.event.issue.labels.*.name, 'epic')) + ) + runs-on: ubuntu-latest + permissions: + issues: write + repository-projects: write + + env: + RAW_TITLE: ${{ github.event.issue.title }} + RAW_BODY: ${{ github.event.issue.body }} + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Create 10 Weekly Goal Track Issues + shell: bash + run: | + # 1. 템플릿 및 데이터 추출 + T_PATH=".github/ISSUE_TEMPLATE/goal_track_week.md" + if [ ! -f "$T_PATH" ]; then echo "❌ 템플릿 파일이 없습니다."; exit 1; fi + + T_TITLE=$(grep "title:" "$T_PATH" | cut -d'"' -f2 | tr -d '`' | xargs) + T_LABELS=$(sed -n '/labels:/,/assignees:/p' "$T_PATH" | grep "-" | sed 's/- //g' | tr -d ' ' | tr '\n' ',' | sed 's/,$//' | xargs) + T_ASSIGNEE=$(grep "assignees:" "$T_PATH" | cut -d'"' -f2 | xargs) + + START_NUM=$(echo "$RAW_TITLE" | grep -oE '[0-9]+' | head -1) + START_DATE=$(echo "$RAW_BODY" | grep -oE '[0-9]{4}[.-][0-9]{2}[.-][0-9]{2}' | head -1 | tr '.' '-') + PARENT_NODE_ID="${{ github.event.issue.node_id }}" + + PROJECT_NUMBER="1" + OWNER="${{ github.repository_owner }}" + + sed -n '/---/{:a;n;/---/!ba;n;:b;p;n;bb}' "$T_PATH" > base_body.md + + # 2. 10주치 반복 생성 (Week START_NUM ~ START_NUM + 9) + for ((i=0; i<10; i++)) + do + CURRENT_WEEK=$((START_NUM + i)) + WEEK_START=$(date -d "$START_DATE + $((i * 7)) days" +"%Y.%m.%d") + WEEK_END=$(date -d "$START_DATE + $((i * 7 + 6)) days" +"%Y.%m.%d") + + export WEEK_RANGE="${WEEK_START} MON ~ ${WEEK_END} SUN" + export DEADLINE="${WEEK_END} SUN" + + # 본문에서 해당 주차 문제 리스트 추출 + RAW_PROBLEMS=$(echo "$RAW_BODY" | sed -n "/week${CURRENT_WEEK}/,/^$/p" | grep "^-" | sed 's/- / - [ ] Solve /g') + export PROBLEMS="${RAW_PROBLEMS:- - [ ] 문제를 찾지 못했습니다.}" + + # Node.js로 템플릿 변수 치환 + node -e " + const fs = require('fs'); + let content = fs.readFileSync('base_body.md', 'utf8'); + content = content.replace(/2026\. MON ~ 2026\. SUN/g, process.env.WEEK_RANGE); + content = content.replace(/2026\. SUN/g, process.env.DEADLINE); + const pattern = /- \[ \] Solve \`Problem 1\`\s+- \[ \] Solve \`Problem 2\`\s+- \[ \] Solve/g; + content = content.replace(pattern, process.env.PROBLEMS); + fs.writeFileSync('final_body.md', content); + " + + # 3. 이슈 생성 + FINAL_TITLE="${T_TITLE}${CURRENT_WEEK}" + echo "🚀 생성 중: $FINAL_TITLE" + CHILD_URL=$(gh issue create --title "$FINAL_TITLE" --body-file final_body.md --label "$T_LABELS" --assignee "$T_ASSIGNEE") + sleep 1 + + # 4. 부모 이슈와 하위 이슈로 연결 + CHILD_ID=$(gh issue view "$CHILD_URL" --json id -q '.id') + gh api graphql -f query='mutation($parentId: ID!, $subIssueId: ID!) { addSubIssue(input: {issueId: $parentId, subIssueId: $subIssueId}) { issue { id } } }' \ + -f parentId="$PARENT_NODE_ID" -f subIssueId="$CHILD_ID" || echo "⚠️ Sub-issue link failed" + + # 5. 프로젝트 보드 #1에 이슈 추가 + echo "⏳ 프로젝트 #$PROJECT_NUMBER 에 이슈 추가 중..." + gh project item-add "$PROJECT_NUMBER" --owner "$OWNER" --url "$CHILD_URL" > /dev/null + + echo "✅ 생성 및 프로젝트 추가 완료: Week$CURRENT_WEEK" + echo "--------------------------------------" + done diff --git "a/sgoldenbird/level0/\354\243\274\354\202\254\354\234\204_\352\262\214\354\236\204_2.js" "b/sgoldenbird/level0/\354\243\274\354\202\254\354\234\204_\352\262\214\354\236\204_2.js" new file mode 100644 index 0000000..e69de29 diff --git "a/sgoldenbird/level0/\354\275\234\353\235\274\354\270\240_\354\210\230\354\227\264_\353\247\214\353\223\244\352\270\260.js" "b/sgoldenbird/level0/\354\275\234\353\235\274\354\270\240_\354\210\230\354\227\264_\353\247\214\353\223\244\352\270\260.js" new file mode 100644 index 0000000..e69de29 diff --git "a/sgoldenbird/level1/\354\227\206\353\212\224_\354\210\253\354\236\220_\353\215\224\355\225\230\352\270\260.js" "b/sgoldenbird/level1/\354\227\206\353\212\224_\354\210\253\354\236\220_\353\215\224\355\225\230\352\270\260.js" new file mode 100644 index 0000000..e69de29 From def7405ffe5aba3368adf3c07773fbf243a13bab Mon Sep 17 00:00:00 2001 From: Sienna Date: Sun, 8 Feb 2026 21:50:35 +0900 Subject: [PATCH 2/7] =?UTF-8?q?solve:=20=EC=BD=9C=EB=9D=BC=EC=B8=A0=20?= =?UTF-8?q?=EC=88=98=EC=97=B4=20=EB=A7=8C=EB=93=A4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...227\264_\353\247\214\353\223\244\352\270\260.js" | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git "a/sgoldenbird/level0/\354\275\234\353\235\274\354\270\240_\354\210\230\354\227\264_\353\247\214\353\223\244\352\270\260.js" "b/sgoldenbird/level0/\354\275\234\353\235\274\354\270\240_\354\210\230\354\227\264_\353\247\214\353\223\244\352\270\260.js" index e69de29..473d381 100644 --- "a/sgoldenbird/level0/\354\275\234\353\235\274\354\270\240_\354\210\230\354\227\264_\353\247\214\353\223\244\352\270\260.js" +++ "b/sgoldenbird/level0/\354\275\234\353\235\274\354\270\240_\354\210\230\354\227\264_\353\247\214\353\223\244\352\270\260.js" @@ -0,0 +1,13 @@ +function solution(n) { + const answer = []; + let temp = n; + + while (temp > 1) { + answer.push(temp); + temp = temp % 2 === 0 ? temp / 2 : 3 * temp + 1; + } + + answer.push(1); + + return answer; +} From f519b632185c75001fa99b9d23509aeb549bbae7 Mon Sep 17 00:00:00 2001 From: Sienna Date: Mon, 9 Feb 2026 00:03:07 +0900 Subject: [PATCH 3/7] =?UTF-8?q?solve:=20=EC=A3=BC=EC=82=AC=EC=9C=84=20?= =?UTF-8?q?=EA=B2=8C=EC=9E=842?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...254\354\234\204_\352\262\214\354\236\204_2.js" | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git "a/sgoldenbird/level0/\354\243\274\354\202\254\354\234\204_\352\262\214\354\236\204_2.js" "b/sgoldenbird/level0/\354\243\274\354\202\254\354\234\204_\352\262\214\354\236\204_2.js" index e69de29..f6e47e9 100644 --- "a/sgoldenbird/level0/\354\243\274\354\202\254\354\234\204_\352\262\214\354\236\204_2.js" +++ "b/sgoldenbird/level0/\354\243\274\354\202\254\354\234\204_\352\262\214\354\236\204_2.js" @@ -0,0 +1,15 @@ +function solution(a, b, c) { + let sum1 = a + b + c; + let sum2 = a ** 2 + b ** 2 + c ** 2; + let sum3 = a ** 3 + b ** 3 + c ** 3; + + if (a === b && b === c) { + return sum1 * sum2 * sum3; + } + + if (a !== b && b !== c && a !== c) { + return sum1; + } + + return sum1 * sum2; +} From 8c2ee50e0425880a53db58f7605dc42811cca670 Mon Sep 17 00:00:00 2001 From: Sienna Date: Mon, 9 Feb 2026 00:24:15 +0900 Subject: [PATCH 4/7] =?UTF-8?q?solve:=20=EC=97=86=EB=8A=94=20=EC=88=AB?= =?UTF-8?q?=EC=9E=90=20=EB=8D=94=ED=95=98=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\354\236\220_\353\215\224\355\225\230\352\270\260.js" | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git "a/sgoldenbird/level1/\354\227\206\353\212\224_\354\210\253\354\236\220_\353\215\224\355\225\230\352\270\260.js" "b/sgoldenbird/level1/\354\227\206\353\212\224_\354\210\253\354\236\220_\353\215\224\355\225\230\352\270\260.js" index e69de29..f507f9a 100644 --- "a/sgoldenbird/level1/\354\227\206\353\212\224_\354\210\253\354\236\220_\353\215\224\355\225\230\352\270\260.js" +++ "b/sgoldenbird/level1/\354\227\206\353\212\224_\354\210\253\354\236\220_\353\215\224\355\225\230\352\270\260.js" @@ -0,0 +1,9 @@ +function solution(numbers) { + let sum = 0; + for (let i = 0; i < 10; i++) { + if (!numbers.includes(i)) { + sum += i; + } + } + return sum; +} From 92c53e91f9f31cec9194601aa121ecf1144c0d93 Mon Sep 17 00:00:00 2001 From: Sienna Date: Mon, 9 Feb 2026 13:29:41 +0900 Subject: [PATCH 5/7] =?UTF-8?q?solve:=20=EB=AC=B8=EC=9E=90=EC=97=B4=20?= =?UTF-8?q?=EB=8F=8C=EB=A6=AC=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\234\353\240\245\355\225\230\352\270\260.js" | 0 ...264_\353\217\214\353\246\254\352\270\260.js" | 17 +++++++++++++++++ ...253\354\236\220_\353\260\260\354\227\264.js" | 0 3 files changed, 17 insertions(+) create mode 100644 "sgoldenbird/level0/\353\215\247\354\205\210\354\213\235_\354\266\234\353\240\245\355\225\230\352\270\260.js" create mode 100644 "sgoldenbird/level0/\353\254\270\354\236\220\354\227\264_\353\217\214\353\246\254\352\270\260.js" create mode 100644 "sgoldenbird/level1/\353\202\230\353\210\204\354\226\264_\353\226\250\354\226\264\354\247\200\353\212\224_\354\210\253\354\236\220_\353\260\260\354\227\264.js" diff --git "a/sgoldenbird/level0/\353\215\247\354\205\210\354\213\235_\354\266\234\353\240\245\355\225\230\352\270\260.js" "b/sgoldenbird/level0/\353\215\247\354\205\210\354\213\235_\354\266\234\353\240\245\355\225\230\352\270\260.js" new file mode 100644 index 0000000..e69de29 diff --git "a/sgoldenbird/level0/\353\254\270\354\236\220\354\227\264_\353\217\214\353\246\254\352\270\260.js" "b/sgoldenbird/level0/\353\254\270\354\236\220\354\227\264_\353\217\214\353\246\254\352\270\260.js" new file mode 100644 index 0000000..ef02872 --- /dev/null +++ "b/sgoldenbird/level0/\353\254\270\354\236\220\354\227\264_\353\217\214\353\246\254\352\270\260.js" @@ -0,0 +1,17 @@ +const readline = require("readline"); +const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout, +}); + +let input = []; + +rl.on("line", function (line) { + input = [line]; +}).on("close", function () { + str = input[0]; + + for (const char of str) { + console.log(char); + } +}); diff --git "a/sgoldenbird/level1/\353\202\230\353\210\204\354\226\264_\353\226\250\354\226\264\354\247\200\353\212\224_\354\210\253\354\236\220_\353\260\260\354\227\264.js" "b/sgoldenbird/level1/\353\202\230\353\210\204\354\226\264_\353\226\250\354\226\264\354\247\200\353\212\224_\354\210\253\354\236\220_\353\260\260\354\227\264.js" new file mode 100644 index 0000000..e69de29 From 7ae0a78538d39020bcb59ed61f56f1e6ac7023bd Mon Sep 17 00:00:00 2001 From: Sienna Date: Mon, 9 Feb 2026 13:43:59 +0900 Subject: [PATCH 6/7] =?UTF-8?q?solve:=20=EB=8D=A7=EC=85=88=EC=8B=9D=20?= =?UTF-8?q?=EC=B6=9C=EB=A0=A5=ED=95=98=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...66\234\353\240\245\355\225\230\352\270\260.js" | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git "a/sgoldenbird/level0/\353\215\247\354\205\210\354\213\235_\354\266\234\353\240\245\355\225\230\352\270\260.js" "b/sgoldenbird/level0/\353\215\247\354\205\210\354\213\235_\354\266\234\353\240\245\355\225\230\352\270\260.js" index e69de29..90c456d 100644 --- "a/sgoldenbird/level0/\353\215\247\354\205\210\354\213\235_\354\266\234\353\240\245\355\225\230\352\270\260.js" +++ "b/sgoldenbird/level0/\353\215\247\354\205\210\354\213\235_\354\266\234\353\240\245\355\225\230\352\270\260.js" @@ -0,0 +1,15 @@ +const readline = require("readline"); +const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout, +}); + +let input = []; + +rl.on("line", function (line) { + input = line.split(" "); +}).on("close", function () { + console.log( + `${Number(input[0])} + ${Number(input[1])} = ${Number(input[0]) + Number(input[1])}`, + ); +}); From 965e62495f5a6e4497f277f0852f0d49408173e5 Mon Sep 17 00:00:00 2001 From: Sienna Date: Mon, 9 Feb 2026 13:52:43 +0900 Subject: [PATCH 7/7] =?UTF-8?q?solve:=20=EB=82=98=EB=88=84=EC=96=B4=20?= =?UTF-8?q?=EB=96=A8=EC=96=B4=EC=A7=80=EB=8A=94=20=EC=88=AB=EC=9E=90=20?= =?UTF-8?q?=EB=B0=B0=EC=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\354\210\253\354\236\220_\353\260\260\354\227\264.js" | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git "a/sgoldenbird/level1/\353\202\230\353\210\204\354\226\264_\353\226\250\354\226\264\354\247\200\353\212\224_\354\210\253\354\236\220_\353\260\260\354\227\264.js" "b/sgoldenbird/level1/\353\202\230\353\210\204\354\226\264_\353\226\250\354\226\264\354\247\200\353\212\224_\354\210\253\354\236\220_\353\260\260\354\227\264.js" index e69de29..3a16d72 100644 --- "a/sgoldenbird/level1/\353\202\230\353\210\204\354\226\264_\353\226\250\354\226\264\354\247\200\353\212\224_\354\210\253\354\236\220_\353\260\260\354\227\264.js" +++ "b/sgoldenbird/level1/\353\202\230\353\210\204\354\226\264_\353\226\250\354\226\264\354\247\200\353\212\224_\354\210\253\354\236\220_\353\260\260\354\227\264.js" @@ -0,0 +1,9 @@ +function solution(arr, divisor) { + let answer = []; + for (let el of arr) { + if (el % divisor === 0) { + answer.push(el); + } + } + return answer.length === 0 ? [-1] : answer.sort((a, b) => a - b); +}