5주차~8주차 [백준 문제풀이]

solved.ac : https://solved.ac/problems/tags

백준에서 문제 난이도 보기: 설정 > 보기 > solved.ac 티어 > 보기

25.5기: 자료구조 태그에서 2문제를 풀어서 제출하면 됩니다. (Silver 5 이상)

또한 파이썬 제출을 허용합니다.

본인에게 너무 높은 난이도라고 생각되시면 개인적으로 연락주세요.

풀이 시 각 문제가 어디에 해당하는지 꼭 명시해주시고, 아래 사진과 같이 통과 결과 사진(정답 여부)을 첨부하기 바랍니다.

더불어 문제 풀이 과정을 상세히 작성하지 않을 시(3문장 이상) 과제로 인정되지 않으니 참고 바랍니다.

https://cafeptthumb-phinf.pstatic.net/MjAyMjA5MDRfNDIg/MDAxNjYyMjcxNDQ4NjI2.IoVYhYWxqYYUt_DW_mMoBIij5M4uDBYZZ5F9FEPx0Kwg.wGO52DuOxRerHptImd0Xxhk4f85KW-UwC9-hiT_EJsMg.PNG/image.png?type=w1600

※ 과제 제출 방법

2025 Winter C Study 깃 레포에 push합니다. 해당방법에 대해서는 4주차가 끝난 후 자세히 설명드리겠습니다.

<aside> 1️⃣

Git Bash를 사용하여 협업 레포지토리에 브랜치를 생성하고 파일을 업로드하는 방법을 단계별로 설명해 줄게.

1. 레포지토리 클론 (초대받은 레포지토리 복사)

먼저, 초대받은 GitHub 레포지토리를 로컬에 복사해야 해.

git clone <레포지토리_URL>

예시:

git clone <https://github.com/suuu004/SISS_2025_C_study.git>[

이제 로컬에 해당 레포지토리가 복사됨.

2. 새로운 브랜치 생성 및 이동

브랜치를 만들어서 작업하는 게 좋기 때문에 새로운 브랜치를 생성하고 이동해.

git checkout -b my-branch

my-branch는 네가 원하는 브랜치 이름으로 바꾸면 돼.

3. 파일 추가 및 수정

작업할 파일을 추가하거나 수정해.

예를 들어 새로운 파일을 만들고 내용을 작성할 수 있어:

echo "Hello, GitHub!" > myfile.txt

4. 변경 사항 추가 (스테이징)

Git에 변경 사항을 추가하려면 아래 명령어를 사용해.

git add .

.(점)은 모든 변경 사항을 추가한다는 의미야. 특정 파일만 추가하려면 git add myfile.txt처럼 작성하면 돼.

5. 커밋 생성

변경 사항을 저장하려면 커밋을 해야 해.

git commit -m "새로운 파일 추가"

"새로운 파일 추가" 부분을 네가 원하는 커밋 메시지로 바꾸면 돼.

6. 브랜치 푸시

작업한 브랜치를 원격 레포지토리에 올려야 해.

git push origin [my-branch]

이제 GitHub에 my-branch라는 이름의 브랜치가 올라감.

7. Pull Request(PR) 생성

GitHub 웹사이트로 가서 네가 만든 브랜치를 확인한 뒤, Pull Request(PR)를 생성하면 돼.

PR이 승인되면 작업이 main(또는 develop) 브랜치에 병합될 거야.

이제 협업 레포지토리에서 브랜치를 만들어서 파일을 추가하고 푸시하는 과정을 배웠어! 🚀

</aside>

<aside> 💡

이 오류는 원격 저장소의 PSE 브랜치가 로컬 브랜치보다 앞서 있어서 푸시가 거부된 상황이야.

즉, 원격 브랜치에 다른 사람이 업데이트한 내용이 있어서, 네가 로컬에서 바로 푸시할 수 없다는 의미야.

해결 방법

  1. 원격 변경 사항을 로컬에 반영

    git pull origin PSE --rebase
    
    

    👉 git pull을 하면 원격 저장소의 최신 내용을 가져오고, --rebase 옵션을 사용하면 네가 한 변경 사항을 최신 커밋 위에 쌓아줌.

  2. 충돌 해결 (필요한 경우) 만약 충돌(conflict)이 발생하면 Git이 알려줄 거야.

    수동으로 충돌을 해결한 후:

    git add .
    git rebase --continue
    
    
  3. 다시 푸시 이제 원격 저장소에 반영된 최신 상태에 맞춰 네 변경 사항이 적용되었으니, 강제 푸시 없이 정상적으로 푸시 가능할 거야.

    git push origin PSE
    
    

만약 rebase 대신 merge를 원한다면,

git pull origin PSE

로 변경 사항을 병합한 뒤 git push origin PSE 하면 돼.

이제 다시 시도해봐! 🚀

1. 강제 푸시 (force push)

강제로 원격 저장소에 푸시하는 방법이야. 이 방법은 로컬의 변경 사항으로 원격 저장소를 덮어쓰는 방식이기 때문에 주의가 필요해. 다른 사람이 이미 원격에 커밋을 푸시했을 경우, 그 변경 사항이 사라질 수 있어.

bash
복사편집
git push origin PSE --force

이렇게 하면 원격 저장소의 PSE 브랜치가 강제로 덮어씌워져. 다른 사람이 푸시한 커밋이 사라질 수 있으므로, 협업 중이라면 주의가 필요해.

</aside>