본문 바로가기

전체 글43

[Git] git 명령어 변경된 모든 파일 스테이징 $ git add . 현재 상태 조회 $ git status 스테이징한 내용 commit $ git commit -m "커밋메시지" commit 내용 push $ git push 브랜치 생성하기 $ git branch 브랜치 이름 변경 $ git branch -m 등록된 브랜치 확인, 현재 브랜치 확인 $ git branch -v 브랜치 전환하기 $ git checkout 브랜치의 추적 확인 (브랜치가 향하고 있는 원격 브랜치 확인) $ git branch -vv 추적 브랜치 설정 $ git branch --set-upstream-to 추적 브랜치 해제 $ git branch --unset-upstream remote repository 확인 $ git remote -v rem.. 2021. 8. 2.
[Git] fork한 repository 동기화부터 pull request (PR)를 보내기까지 1. fork해 온 repository와 동기화 할 remote repositoty 설정 1. Git bash 열기 2. 현재 설정되어있는 remote repository 확인하기 $ git remote -v > origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch) > origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push) 별도의 설정을 하지 않았다면 다음과 같이 본인의 repository만이 보일 것이다. 3. fork 한 나의 repository와 동기화할 새로운 remote repository를 'upstream'이라는 이름으로 등록 (브라우저 주소창의 url이 아니라 clone할 때 사용.. 2021. 8. 2.
[백준 BOJ] 2579 : 계단 오르기 (C++) https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 아이디어 흐름 1. 아이디어 구상 이전에 풀었던 dp문제들에 견주어 이 문제 또한 '내가 i번째에 있을 때 이것을 선택할때, 하지 않을 때' 라는 측면에서 먼저 생각해보았다. 세 가지를 연속으로 선택할 수 없다는 조건을 생각해보고 dp[i] = dp[i - 3] + max((arr[i - 2] + arr[i - 1]), (arr[i - 2] + arr[i]), (arr[i - 1] + arr[i])) 위와 같.. 2021. 7. 28.
KMP (Knuth–Morris–Pratt Algorithm) 알고리즘 이번 2학기에 들을 과목들을 살펴보다 알고리즘 교과목 강의계획서를 보니 kmp알고리즘이 있었다. 문자열 매칭을 다룰 때마다 몇 번 듣기는 했었는데 이번 기회에 제대로 공부해보고자 한다. 소스코드 #include #include #include using namespace std; vector getPi(string); vector kmp(string, string); int main() { string T, P; getline(cin, T); getline(cin, P); vector ans = kmp(T, P); cout T[i + k] 로 이동하여 비교를 시작하고, P도 k만큼 이동한 후 P[0]부터 비교를 시작하면 i 번째 인덱스에 있었을 때의 정보를 통해 T와 P가 일치한다고 알 수 있는 마지막 .. 2021. 7. 25.
[백준 BOJ] 1149 : RGB거리 (C++) https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 아이디어 흐름 1. 아이디어 구상 문제의 조건이 앞의 색과 다른 색으로만 칠하면 된다는 의미이기 때문에 arr[1001][3] 배열을 선언한 후 각 집의 R, G, B 값을 모두 저장 현재 i번째 인덱스를 진행중일 때, 점화식은 dp[i] = dp[i - 1] + min(arr[i][0], arr[i][1], arr[i][2]) 기저조건(초기값)이 가장 작은 값으로 시작한다고.. 2021. 7. 20.
[백준 BOJ] 2954 : 창영이의 일기장 (C++) https://www.acmicpc.net/problem/2954 2954번: 창영이의 일기장 창영이는 매일 밤 하루동안 일어난 일을 일기장에 남긴다. 일기장을 쓰면서 영어 공부도 같이 하기 위해서 영어로 일기를 쓴다. 또, 남들이 자신의 일기장을 보는 것을 막기 위해서 모음('a','e','i www.acmicpc.net 굉장히 간단한 문제인데 조금 더 생각을 하지 못하고 문제의 조건 곧이 곧대로 푸느라 효율적이지 못했던 것 같다.... 아이디어의 흐름 1. 아이디어 구상 모음이 온 다음에는 무조껀 'p + 모음' 이 삽입되는 것이므로, 입력받은 문자열을 처음부터 끝까지 순회하며 모음인 a e i o u를 만나게 되면 앞으로 올 두 원소를 삭제해주는 방향으로 생각하였다. 문자열 입력은 getlin()으.. 2021. 7. 13.
[백준 BOJ] 11497번 : 통나무 건너뛰기 (C++) https://www.acmicpc.net/problem/11497 11497번: 통나무 건너뛰기 남규는 통나무를 세워 놓고 건너뛰기를 좋아한다. 그래서 N개의 통나무를 원형으로 세워 놓고 뛰어놀려고 한다. 남규는 원형으로 인접한 옆 통나무로 건너뛰는데, 이때 각 인접한 통나무의 높이 www.acmicpc.net 아이디어의 흐름 1. 시간복잡도 고려 입력이 10,000개, 시간제한은 1초이므로 O(n^2) 알고리즘이어도 시간 안에 통과할 것이라 예상 2. 아이디어 구상 임의로 수를 입력해주었을 때, 인접한 두 수의 차의 절대값이 최소가 되어야한다.이 통나무는 원형으로 배치되므로, 오름/내림차순 정렬을 할 경우 양 끝단의 차가 가장 크게 나온다. 단순한 정렬은 아닐 것이라 생각, 추상적으로 생각해보았을 때.. 2021. 7. 11.