전체 글(325)
-
[백준(BOJ)] 선물할인(25947번)_C++
문제를 보고 러프하게 풀이방법을 생각해보면 브루트포스가 있다.하지만, O(n^2)이라 시간초과가 날 것이다. 그러면 O(n) 혹은 O(nlogn) 정도의 로직으로 코드를 구성해야 한다. 최대 a개 만큼 반값할인을 받을 수 있다고 문제에 나와 있다.10개 중에 최대 3개를 할인받을 수 있다고 가정해보면해당 10개를 모두 구매할 수 있든 없든 항상 상위 3개를 할인받는 것이 가장 유리하다. 따라서 우리는 하위 a개를 고려할 필요없이 상위 a개의 반값할인만을 고려하면 된다. 이 문제를 풀기 위해서 우리는 매번 임의의 개수의 선물의 가격의 합을 구해야한다.이 작업만 해도 O(n)이기 때문에 누적합을 이용해서 이를 선처리해줄 것이다. 위의 굵은 글씨에 해당하는 두가지를 사용하려면선물들의 가격순으로 오름차순 정렬..
2025.03.05 -
[Git] git game - push/fetch/pull origin
git checkout -b [branch name] [remote branch name] 새로운 브랜치를 생성하는데 특정 원격 브랜치를 참조하는 브랜치를 생성-push 및 pull 시 목적지를 해당 원격 브랜치로 설정 git branch -u [branch name] [romote branch name] 도 같은 기능을 함 git push origin [source]:[destination] local의 [source] commit을 remote의 [destination] branch에 push- [destination] branch 없으면 생성- [source] commit 없으면 [destination] branch를 삭제 git fetch origin [source]:[destination] ..
2024.07.10 -
[Git] git game - fakeTeamwork, push
git fakeTeamwork [branch name] [commit count] remote의 [branch name]에 [commit count] 만큼 커밋 추가=> local과 remote의 상태가 다름=> 내가 아닌 다른 팀원이 romote에 커밋을 추가한 것으로 취급할 수 있음 git push local 상태를 remote에 반영하여 remote를 업데이트 remote : a local : a 위와 같은 상황에서 git push는 불가능- remote를 local과 똑같이 만들지, 새로운 코드인 e만 추가할지 또는 다른 방법으로 할지 결정 불가능- push 하기 전에 romote의 최신 상태를 합치도록 강제함=> rebase나 merge로 해결 가능=> git pull --rebase = fe..
2024.07.10 -
[Git] git game - clone, fetch, pull
git clone 원격 저장소의 파일들을 로컬에 복제git clone 시 로컬에 원격 브랜치 생성 (/, ex : origin/main)-원격 저장소의 상태를 반영-원격 브랜치로 체크 아웃하면 분리된 HEAD모드로 작동 -원격 브랜치에서 작업 불가 => 로컬에서 작업 후 원격 브랜치 갱신 git fetch 로컬에는 없는 원격 저장소의 커밋들을 다운로드원격 브랜치가 가리키는 곳을 업데이트-실제 로컬 파일들이나 브랜치를 변경하지는 않음 git pull 원격 저장소의 커밋들 다운로드하고 로컬의 브랜치도 업데이트-git fetch + git merge git game 정답 git clone git commitgit checkout o/maingit commit git fetch git pull
2024.07.09 -
[Git] git game - 2 argument rebase, ^ with number
git rebase [-i] [destination commit] [source commit] dest commit에 source commit을 정렬하여 정리 git checkout [object commit((^ | ~)number?)*] git checkout HEAD~^2~2 git game 정답 git rebase -i HEAD bugFixgit rebase -i HEAD sidegit rebase -i HEAD anothergit branch -f main HEADorgit rebase main bugFixgit rebase bugFix sidegit rebase side anothergit rebase another main git checkout HEAD^^2^git branch b..
2024.07.09 -
[Git] git game - commit 순서 변경/내용 수정, tag, describe
git commit --amend top 커밋 내용 수정 git rebase -i 사용 시 순서 변경할 경우 충돌 발생 가능=> cherry-pick 활용 git tag [tag name] [object commit] 특정 커밋들을 브랜치로 참조하듯이 영구적으로 가리킴[object commit] 명시하지 않으면 HEAD가 가리키는 커밋으로 취급커밋들이 추가적으로 생성되어도 Git 태그는 움직이지 않음 git describe [object commit] 출력 형식 : __g가장 가까운 부모 태그 출력-[object commit]도 포함하여 부모 태그 탐색[object commit] 생략 시 HEAD 커밋 사용 git describe main//output: v1_2_gC2git describe sid..
2024.07.09