From 0529d954aa6fbdae38c69ea0e4ae6b527e1054d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=96=91=EC=9D=80=EC=A7=80?= Date: Wed, 13 Aug 2025 15:27:18 +0900 Subject: [PATCH] =?UTF-8?q?[08-06]=20=ED=95=99=EC=8A=B5=20=EB=82=B4?= =?UTF-8?q?=EC=9A=A9=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 0 -> 6148 bytes 3team_eunji/.DS_Store | Bin 0 -> 6148 bytes ...21\353\240\245\355\225\230\352\270\260.md" | 169 ++++++++++++++++++ ...54\354\246\230\353\254\270\354\240\234.md" | 45 +++++ 4 files changed, 214 insertions(+) create mode 100644 .DS_Store create mode 100644 3team_eunji/.DS_Store create mode 100644 "3team_eunji/2025-08-06/\352\271\203\355\230\221\353\240\245\355\225\230\352\270\260.md" create mode 100644 "3team_eunji/2025-08-06/\354\225\214\352\263\240\353\246\254\354\246\230\353\254\270\354\240\234.md" diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..7fa725c1bef896773dcac961d02ee7dde5e7fdaa GIT binary patch literal 6148 zcmeHK!A`?447FiGm3G+?iAzr0r~N>g$`|YdfUSrzS~3ZC;MNN#{(;}&w|I^{)QVP! z3qoK^$#W9hji1ycCL*5i$|=!=h%z)m7NtjIx_9ZojE{hvV$^g&*R-R1+VlkajZ?Ds zG0o@^`@W*~{%^~NRke(wXxOFVQ zVZB{{v5Pf5A-za<`;=Pyb=4Vg2AlzB;NLMI7aJrSD|+t?I0MeW2Lp0G1T?|iuu)7$ z2f9=O07sZk0$pke@d<{xVWWr@2&*elUD-+uR(H$?v&#(|MRg~(;)CtW`{ISu*AYJ? zbK+dlduPBI=rVAq!-?Gg=lErMi~O#OkDLK#;EyrDqhe9ak(Ax7pVE`NHlSUiiHKbz o3IuxR5rBc5Bgbh`*MsP=%MBYvi6ZmK9q12%M2L6Jzz;C+4*Cy3SpWb4 literal 0 HcmV?d00001 diff --git a/3team_eunji/.DS_Store b/3team_eunji/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..718337c17f5cb708db759c1afc23da5b8dc5c646 GIT binary patch literal 6148 zcmeHK!Ab)$5S`Hqi(Y#4n3FfbRuqqES-+q^Aln5!?29y0VoRtnQc(W)}?yMRg~(;)8AHui}OC?uZ|p^tbMZ-Z+qR4!92l|gdCd4~u;1?M91f_8+)Bpeg literal 0 HcmV?d00001 diff --git "a/3team_eunji/2025-08-06/\352\271\203\355\230\221\353\240\245\355\225\230\352\270\260.md" "b/3team_eunji/2025-08-06/\352\271\203\355\230\221\353\240\245\355\225\230\352\270\260.md" new file mode 100644 index 0000000..9ec964f --- /dev/null +++ "b/3team_eunji/2025-08-06/\352\271\203\355\230\221\353\240\245\355\225\230\352\270\260.md" @@ -0,0 +1,169 @@ +# Git, Github 명령어 정리본 + +## Git 시작 설정 + +### 현재 디렉토리를 Git 프로젝트로 설정 + +> 명령어: git init +설명: 현재 작업 중인 디렉토리를 Git이 관리하는 프로젝트(working directory)로 만들고, 그 안에 Git 저장소(.git 디렉토리)를 생성합니다. + +> 사용자 이름 설정 +명령어: git config user.name '사용자 ID' +설명: 커밋에 포함될 사용자의 이름을 설정합니다. + +> 사용자 이메일 설정 +명령어: git config user.email '이메일주소' +설명: 커밋에 포함될 사용자의 이메일 주소를 설정합니다. + +### Staging Area 다루기 +파일들을 Staging Area에 올리기 +1. 명령어: git add [파일 이름] +설명: 수정사항이 있는 특정 파일을 커밋 후보인 Staging Area에 올립니다. +2. 명령어: git add [디렉토리명] +설명: 해당 디렉토리 내에서 수정사항이 있는 모든 파일들을 Staging Area에 올립니다. +3. 명령어: git add . +설명: 현재 작업 디렉토리 내의 수정사항이 있는 모든 파일들을 Staging Area에 올립니다. + +>Staging Area에 올린 파일 내리기 +명령어: git reset [파일 이름] +설명: Staging Area에 올렸던 파일을 내리고 이전 상태로 되돌립니다. + +>커밋 남기기 +명령어: git commit -m "커밋 메시지" +설명: 현재 Staging Area에 있는 변경사항들을 확정하고 커밋 메시지와 함께 하나의 커밋으로 저장합니다. + + +### Git 상태 확인 및 도움말 + +>현재 Git 상태 출력 +명령어: git status +설명: Git이 현재 프로젝트에 대해 인식하고 있는 내용을 출력합니다. 문제 발생 시 현재 상태를 파악하는 데 유용합니다. + +>특정 명령어의 공식 매뉴얼 보기 +명령어: git help [커맨드 이름] +설명: 궁금한 Git 명령어의 공식 사용법과 상세 내용을 출력합니다. + +### GitHub 시작하기 + +>로컬 저장소 내용을 원격 저장소에 처음으로 올리기 +명령어: git push -u(또는 --set-upstream) origin master +설명: 로컬 저장소의 내용을 원격 저장소(origin)의 master 브랜치에 처음으로 올립니다. 이 옵션을 사용하면 다음부터는 git push만으로도 동일한 작업을 할 수 있습니다. + +>로컬 저장소 내용 원격 저장소에 올리기 +명령어: git push +설명: 이미 한 번 원격 저장소에 연결된 후, 로컬의 커밋들을 원격 저장소에 올립니다. + +>원격 저장소 내용 로컬 저장소로 가져오기 +명령어: git pull +설명: 원격 저장소의 최신 변경사항을 가져와서 로컬 저장소에 병합(merge)합니다. + +>GitHub의 프로젝트를 내 컴퓨터로 가져오기 +명령어: git clone [프로젝트의 GitHub 상 주소] +설명: GitHub에 있는 원격 저장소를 내 컴퓨터에 복제하여 새로운 로컬 저장소를 만듭니다. + +### Git에서 커밋 다루기 + +>커밋 히스토리 출력 +명령어: git log +설명: 현재 브랜치에 대한 커밋 기록을 최신순으로 출력합니다. +명령어: git log --pretty=oneline +설명: oneline 옵션을 사용해 커밋 하나당 한 줄씩 간결하게 출력합니다. + +>특정 커밋의 변경사항 확인 +명령어: git show [커밋 아이디] +설명: 특정 커밋에서 어떤 파일이 어떻게 변경되었는지 자세한 내용을 확인합니다. + +>최신 커밋 메시지 수정 +명령어: git commit --amend +설명: 가장 최근의 커밋을 수정하여 새로운 커밋으로 만듭니다. 커밋 메시지를 수정하거나, Staging Area에 추가된 내용을 덧붙일 수 있습니다. + +>명령어에 별명 설정 +명령어: git config alias.[별명] [커맨드] +설명: 길이가 긴 명령어에 짧은 별명을 지정해 편리하게 사용합니다. + +>두 커밋 간의 차이 비교 +명령어: git diff [커밋 A의 아이디] [커밋 B의 아이디] +설명: 두 커밋 사이에서 어떤 내용이 변경되었는지 비교해서 보여줍니다. + +>특정 커밋으로 되돌리기 +명령어: git reset [옵션] [커밋 아이디] +설명: 현재 HEAD의 위치를 특정 커밋으로 되돌립니다. +1. --soft: HEAD만 이동시키고, Staging Area와 작업 디렉토리는 그대로 둡니다. +2. --mixed (기본값): HEAD를 이동시키고, Staging Area도 이전 상태로 되돌립니다. 작업 디렉토리의 변경사항은 유지됩니다. +3. --hard: HEAD와 Staging Area, 그리고 작업 디렉토리까지 모두 되돌립니다. + +>특정 커밋에 태그 붙이기 +명령어: git tag [태그 이름] [커밋 아이디] +설명: 특정 커밋에 중요한 시점(예: v1.0.0)임을 나타내는 태그를 붙입니다. + +### Git에서 브랜치 사용하기 + +>새 브랜치 생성 +명령어: git branch [새 브랜치 이름] +설명: 현재 커밋을 기준으로 새로운 브랜치를 생성합니다. + +>새 브랜치 생성 및 이동 +명령어: git checkout -b [새 브랜치 이름] +설명: 새로운 브랜치를 생성함과 동시에 해당 브랜치로 바로 이동합니다. + +>브랜치 이동 +명령어: git checkout [기존 브랜치 이름] +설명: 이미 존재하는 다른 브랜치로 HEAD를 이동시킵니다. + +>브랜치 병합(merge) +명령어: git merge [기존 브랜치 이름] +설명: 현재 브랜치에 다른 브랜치의 변경사항을 병합합니다. + +>병합 작업 취소 +명령어: git merge --abort +설명: 병합 중 충돌(conflict)이 발생했을 때, 병합을 취소하고 이전 상태로 돌아갑니다. + +>브랜치 삭제 +명령어: git branch -d [기존 브랜치 이름] +설명: 지정한 브랜치를 삭제합니다. +Git 실전 I + +>원격 저장소의 최신 커밋들 가져오기 +명령어: git fetch +설명: 원격 저장소의 최신 커밋들을 로컬 저장소로 가져오지만, 로컬 브랜치에 자동으로 병합하지는 않습니다.(git pull과 차이점) + +>파일의 특정 줄 변경 기록 확인 +명령어: git blame +설명: 특정 파일의 각 줄이 어떤 커밋에 의해 수정되었는지, 누가 작성했는지 확인합니다. + +>특정 커밋의 변경사항을 되돌리는 새로운 커밋 생성 +명령어: git revert [커밋 아이디] +설명: 특정 커밋에서 이루어진 변경을 취소하는 새로운 커밋을 만듭니다. 커밋 히스토리를 깔끔하게 유지할 수 있습니다. +Git 실전 II + +>HEAD의 이동 기록 확인 +명령어: git reflog +설명: HEAD가 그동안 어떤 커밋을 가리켜왔는지에 대한 모든 기록을 출력합니다. + +>모든 브랜치의 커밋 히스토리를 그래프로 출력 +명령어: git log --all --graph +설명: 모든 브랜치의 커밋 히스토리와 그 관계를 시각적인 그래프 형태로 보여줍니다. + +>커밋 히스토리를 한 줄로 깔끔하게 정렬 +명령어: git rebase [브랜치 이름] +설명: 두 브랜치가 갈라진 지점 이후의 커밋들을 다른 브랜치의 최신 커밋 위로 옮겨 붙여서 커밋 히스토리를 한 줄로 만듭니다. git merge와 같은 효과를 내지만 더 깔끔한 히스토리를 유지할 수 있습니다. + +>현재 작업 내용을 임시 저장 +명령어: git stash +설명: 아직 커밋하지 않은 현재 작업 내용을 스택 영역에 임시로 저장하여 다른 브랜치로 이동할 수 있게 합니다. + +>임시 저장한 작업 내용 적용 +명령어: git stash apply [stash id] +설명: 스택에 저장된 작업 내용을 현재 작업 디렉토리에 적용합니다. (stash id를 생략하면 가장 최근 내용을 적용) + +>임시 저장한 작업 내용 삭제 +명령어: git stash drop [stash id] +설명: 스택에 저장된 작업 내용을 스택에서 삭제합니다. (stash id를 생략하면 가장 최근 내용을 삭제) + +>임시 저장한 작업 내용 적용 및 삭제 +명령어: git stash pop [stash id] +설명: 스택에 저장된 작업 내용을 적용함과 동시에 스택에서 삭제합니다. (stash id를 생략하면 가장 최근 내용을 적용) + +>특정 커밋의 내용만 가져와서 적용 +명령어: git cherry-pick [커밋 아이디] +설명: 다른 브랜치에 있는 특정 커밋의 변경사항만 가져와서 현재 브랜치에 새로운 커밋으로 반영합니다. \ No newline at end of file diff --git "a/3team_eunji/2025-08-06/\354\225\214\352\263\240\353\246\254\354\246\230\353\254\270\354\240\234.md" "b/3team_eunji/2025-08-06/\354\225\214\352\263\240\353\246\254\354\246\230\353\254\270\354\240\234.md" new file mode 100644 index 0000000..cae4e24 --- /dev/null +++ "b/3team_eunji/2025-08-06/\354\225\214\352\263\240\353\246\254\354\246\230\353\254\270\354\240\234.md" @@ -0,0 +1,45 @@ +## 문제1 +>머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요. + +### 내 풀이 순서 +1. 사람수를 7로 나눈다. 몫을 보관한다. +2. 사람수를 7로 나눠 남은 수가 0이 아닐 경우 보관한 몫에 1을 더한다 + +```javascript +function solution(n) { + var pizza = Math.floor(n / 7); + var more = n % 7; + + if (more > 0) { + pizza++; // pizza += 1; pizza++; + } + + return pizza; +} +``` +## 문제2 +>머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요. + +### 내 풀이 순서 +1. n과 6의 최소공배수를 구한다 +2. 최소공배수를 6으로 나눠 몫을 구한다 + +```javascript +// 유클리드 호제법으로 최대공약수(GCD)를 구하는 함수 +function gcd(a, b) { + while (b !== 0) { + let temp = b; + b = a % b; + a = temp; + } + return a; +} +function solution(n) { + // 1. n과 6의 최소공배수를 구한다. + // 최소공배수 = (두 수의 곱) / (최대공약수) + const lcm = (n * 6) / gcd(n, 6); + // 2. 최소공배수를 6으로 나눠 필요한 피자 판 수를 구한다. + const numberOfPizzas = lcm / 6; + return numberOfPizzas; +} +``` \ No newline at end of file