본문 바로가기

반응형

전체 글

(174)
[ 백준 2501 ] 약수 구하기 (C++) https://www.acmicpc.net/problem/2501 2501번: 약수 구하기 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. www.acmicpc.net 벡터를 생성하고 N을1부터 N까지의 수로 나눈 다음 나누어 떨어지는 숫자(약수)를 벡터에 추가해줬다. 벡터에는 약수만 있으므로 K-1번째(인덱스는 0부터 시작하므로) 숫자를 출력해주면 된다. 단, 벡터의 크기가 K보다 작으면 K째 작은 약수가 없으므로 0을 출력해준다. #include #include using namespace std; int main(){ int N, K; cin >> N >> K; vector lst; for(int i = 1; i
문제 출처 아래 블로그에서 추천해준 문제들에 대한 문제 풀이. 여기 없는 문제도 몇 개 있다. https://covenant.tistory.com/224 코딩테스트 대비를 위한 백준 문제 추천 코딩테스트 대비를 위한 백준 문제 추천 끝 없는 훈련만이 실전에서 흐트럼없이 정답을 향해서 움직일 수 있습니다. (Photo by Specna Arms on Unsplash) 작년 한 해 수많은 코딩테스트를 직접 경험하고 covenant.tistory.com
[Git] 명령어 정리 $ git init : 현재 디렉터리를 워킹디렉터리로 지정, 레포지터리 생성 $ git config user.name '이름' : 맨 처음 커밋하기 전에 사용자 이름 설정 $ git config user.email '이메일' : 이메일 설정 $ git add 파일이름 : 특정 파일의 수정사항을 staging area로 옮김 $ git add . : 워킹 디렉터리 내의 수정사항이 있는 모든 파일들을 staging area로 옮김 $ git reset 파일이름 : staging area에 올렸던 파일 다시 내리기 $ git status : 깃이 현재 인식하고 있는 프로젝트 관련 내용들을 출력 $ git commit -m "커밋 메시지" : staging area에 있는 내용을 커밋 $ git push -u ..
[Git] 작업 내용 임시 저장하기 - stash 마스터 브랜치에서 작업을 하다가 아직 커밋을 하지 않았는데 급하게 다른 브랜치로 가야할 일이 생길 수 있습니다. 물론 커밋을 하고 가면 되겠지만 작업이 끝나지도 않았는데 커밋을 하면 쓸모없겠죠? ' git stash ' 를 입력하면 최신 커밋 이후의 작업들을 저장할 수 있습니다. 마스터 브랜치에서 미완성된 팩토리얼 함수를 커밋하지 않고 highlevel 브랜치로 이동해보겠습니다. 저는 커밋을 하고 싶지 않은데 checkout 전에 커밋을 하라는 오류가 뜨네요? git stash 명령어를 입력하고 다시 이동해보겠습니다. 잘 되네요. highlevel 브랜치에서 작업이 다 끝나고 다시 마스터 브랜치로 돌아갔다고 가정하겠습니다. stash에 저장된 작업물을 다시 불러오려면 ' git stash apply ' ..
[Git] remote repository에 올라간 커밋 취소하기 제목이 조금 이상하게 느껴지셨을 수도 있습니다. 커밋을 취소하려면 리셋을 쓰면 되지 않을까요? 반은 맞지만 반은 틀린 말입니다. 만약 로컬 레포지터리에서만 작업을 하는 상황이면 리셋을 사용하면 됩니다. 하지만 리모트 레포지터리에서 같이 작업을 할 때는 리셋을 쓸 수가 없습니다. 그 이유를 살펴보겠습니다. ​ 아래 그림은 리모트 레포지터리에서 내용을 수정하고 커밋을 한 뒤에 로컬 레포지터리에 푸쉬를 한 상황입니다. 세 번째 커밋으로 reset을 하면 아래 그림과 같을 것입니다. 자 그런데 이 상태에서 푸시를 하면 어떻게 될까요? 당연히 오류가 나겠죠! 왜냐하면 리모트 레포지터리에 더 최신 커밋이 있기 때문입니다. 그럼....어떻게 하면 리모트 레포지터리에서 세 번째 커밋으로 돌아갈 수 있을까요? 우선 저희..
[Git] 누가 기록했는지 확인하기 이번 글은 아주 짧습니다. ​ 협업을 하다가 특정 코드를 누가 작성했는지 알고싶을때가 있습니다. 이럴때 git blame 명령어를 사용하면 됩니다. print.py 코드로 한번 살펴보겠습니다. 가장 왼쪽에 커밋 아이디가 있습니다. 괄호 안에는 누가 언제 코드를 작성했는지 확인할 수 있습니다. 커밋 단위로 더 자세하게 보려면 show 명령어를 사용하면 됩니다. 커밋 아이디가 1216인 커밋을 한번 살펴보겠습니다. ​ 이름과 이메일, 날짜, 시간, 코드 내용이 하나도 빠짐없이 나오네요. 실제로 협업할때는 커밋을 신중하게 해야겠네요!
[Git] git pull시 주의점 만약에 로컬 레포지터리에서 푸시를 해주고 다음 푸시를 해주기 전에 리모트 레포지터리에 변화 생기면 어떡할까요? 한번 해보겠습니다. 먼저 깃허브로 가서 마스터 브랜치의 내용을 수정해보겠습니다. ​ 연핀 모양의 기호를 클릭하면 수정할 수 있습니다. 나누기 함수를 추가해주고 커밋을 해보겠습니다. 이제 로컬 레포지터리에서 이름이 다른 나누기 함수를 추가해보겠습니다. 커밋을 한 뒤에 푸시를 해보겠습니다. 에러가 뜨네요.. 이처럼 리모트 레포지터리에 변화가 생긴 경우 push를 하게 되면 오류가 납니다. 이를 해결해주기 위해서는 pull을 먼저 해주고 내용을 고친 뒤에 다시 푸시를 해주면 됩니다. 풀을 해보겠습니다. ​ 그런데 merge conflict가 발생했습니다! 그 이유는 리모트 레포지터리의 최신 커밋들을 ..
[Git] merge 완전정복 이번 시간에는 머지(merge)를 자세히 다뤄보겠습니다. 두 브랜치를 머지하면 머지 커밋이 생성됩니다. 하지만 새로운 커밋이 생성되지 않는 머지도 있습니다. 이를 'fast-forward 머지'라고 합니다. 머지 커밋이 생성되는 머지는 '3-way 머지'라고 합니다. 하나씩 설명드리겠습니다. ​ [1] fast forward merge 아래 그림과 같이 브랜치가 아직 분기되지 않은 상태에서 머지를 하면 새로운 커밋이 생성되지 않습니다. 마스터 브랜치를 하이레벨 브랜치와 머지해주면 마스터 브랜치가 이동만 하고 끝입니다. 그러니깐 위 상태에서 머지를 해주면 아래처럼 됩니다. 새로운 커밋이 생성되지 않았죠? 그러면 새로운 커밋이 생성되는 머지를 살펴보겠습니다. [2] 3-way merge 분기된 상태에서 브랜..

반응형