전체 글 56

[Git]PR/branch/branch 나누기

Git의 PR 관련된 설명은 여기에 가서 봐주세요! PR를 새롭게 올리려고 branch를 나눴는데 다른 branch의 파일도 함께 딸려 올라가는 경우가 있습니다. 저도 겪은 사례고 Git에 익숙하지 않다면 누구나 겪어봤을 법한 일입니다. 그래서 그 이유와 해결 방법을 작성해보려 합니다. 이유? 왼쪽 그림처럼 branch1과 branch2가 main 브랜치에서 갈라져나온 것이 아닌 우측 그림처럼 branch1의 내용을 이어받은 branch 1.1 버전이 생성되었기 때문입니다. 그럼 왜 이렇게 되었고 해결방안이 무엇인지 설명드리겠습니다. 왜? 다른 여러 이유가 있을 수 있지만 제가 했던 실수 하나만 이유로 꼽겠습니다. (왜냐하면 그 이유밖에 모르기 때문이죠😁) branch를 새로 생성할 때, 항상 최신의 상..

Develop/Git 2021.02.16

[DS/자료구조]세그먼트 트리(Segment Tree)

세그먼트 트리란 통계 트리라고도 하며 배열의 구간 합을 구할 때 적합한 구조입니다! 백준 2042번 문제가 세그먼트 트리를 사용하는데 세그먼트 트리를 공부하고 풀어보면 좋을 것 같습니다 :) 저는 나동빈님의 블로그 글을 보고 공부하여 문제를 풀었고 그것을 제 블로그에 기록했습니다. 참고로 아래 설명에 나오는 제 코드는 java로 작성한 코드입니다! [예시] 배열 {1, 2, 3, 4, 5, 6, 7, 8}의 구간합을 세그먼트 트리로 나타내면 아래와 같습니다. 루트 노드는 모든 구간의 합으로 이루어져 있고 이는 왼쪽과 오른쪽 노드의 합을 의미합니다. 이것을 이용하여 세그먼트 트리를 생성하는 메소드를 작성해 보겠습니다. 세그먼트 트리 생성(init) long init(int start, int end, in..

Develop/Algorithm 2021.02.13

[SSAFY] 5주차 후기/느낀점/일기

5번의 월말 평가, 10번의 과목평가가 있는데 벌써 1번의 월말 평가, 3번의 과목평가를 끝냈다. 시간이 진짜 빠르게 간다. 아 쫌만 버티자 버티자! 외치며 버텼더니 드디어 설날이 됐다. 매일 아침 8시에 기상하다가 푹 자도되는 평일을 맞이하니 완전 늦잠을 자고 늘어져버렸다. 근데 정말 피곤했나보다. 입술이 아따맘마처럼 엄청 붓기 시작했다. 좀 느슨하지만 설날에도 1일 1 알고리즘은 하려고 했는데 진짜 세상에 미련없다는 듯 열심히 쉬었다! 쉬는데도 피곤한건 왜일까😭 이제 토요일인데 계속 어제, 엊그제처럼 있다가는 주말내내 아무것도 안하고 월요병이 심하게 올 것 같아서 컴퓨터 앞에 앉았다! 간단하게 지난 3주 후기 이후로 느낀점을 간단하게 작성하고 공부를 하러 가봐야겠다! 스스로 고쳐야할 점? 반성할 점이..

Diary/SSAFY 2021.02.13

[알고리즘/Algorithm]순열(Permutation)/조합(Combination)/부분집합(Power Set)

순열(Permutation) 서로 다른 것들 중 몇 개를 뽑아서 한줄로 나열하는 것 (nPr = n!) n>12인 경우, 시간 복잡도 폭발적으로 상승 void permutation(int cnt) { if (cnt == r) { // 순열 생성 완료 return; } for (i 1 to n) { if (isSelected[i]) continue; numbers[cnt] += i; isSelected[i] = true; permutation(cnt + 1); isSelected[i] = false; } } 조합(Combination) 서로 다른 n개의 원소 중 r개를 순서 없이 골라낸 것 void combination(int cnt int index) { if(cnt == r) { // 조합 생성 완료 ..

Develop/Algorithm 2021.02.07

[Git]PR/Pull Request/풀리퀘/Merge

Github의 레포지토리에 들어가 상단을 보면 아래와 같이 구성되어 있습니다. 그 중에 Pull requests가 오늘 다룰 주제입니다! 협업을 하게되면 각자 분담을 하고 코드를 합쳐서 하나의 프로젝트를 완성하게 됩니다. 이 과정에서 pull request를 사용하면 서로의 코드를 리뷰 통해 잘못된 점은 무엇이 있는지, 더 나은 코드가 무엇인지 리뷰할 수 있습니다. 내가 작성했지만 코드리뷰를 하면서 다른 사람도 체크를 하니까 만약 여기서 문제가 발생해도 100% 내 책임은 아니다!!!🤭 이제 PR을 하는 방법을 천천히 소개해보겠습니다! 1. 함께 개발하는 소스를 fork → 나의 Github을 눌러서 소스를 가져옵니다. ※ fork란 개발자들 소스를 통째로 가져와 하나의 새로운 소프트웨어를 개발하는 것입..

Develop/Git 2021.02.07

[Git] commit/push/clone/add/커밋/푸쉬/클론

git에 있는 내용을 가져오기 위해 소스를 복제하는 clone 내가 수정한 내용을 git에 다시 올리기 위해서는 add, commit, push 1. github에 있는 repository를 가져옵니다. 먼저 내 github repository에서 url을 복사해옵니다. 저는 윈도우 유저고 git bash를 사용하고 있습니다. 원하는 위치에서 git bash를 켜시고 아까 복사한 url로 레포지토리를 클론해옵니다. git clone 원하는 위치에 클론이 잘 된 것을 확인할 수 있습니다. 2. 내용을 수정해줍니다. README.md 파일에 있던 내용을 왼쪽에서 오른쪽과 같이 수정해줬습니다. ide는 visual code를 사용해줬습니다. 3. 수정한 내용을 git에 올려줍니다. 방금 수정한 내용은 내 로컬..

Develop/Git 2021.02.07

[DS/자료구조] Stack/Queue/스택/큐

스택(Stack) Stack은 LIFO구조로 나중에 들어온 객체가 먼저 나가는 자료구조입니다. 꺼내려면 위에서부터 꺼내야하고 정리할 때는 아래서부터 쌓는 장롱 속 이불과 같은 구조입니다. Java에서는 java.util 패키지에 구현된 Stack을 사용합니다. Stack stack = new Stack(); stack.push(1); stack.push(2); stack.pop(); 큐(Queue) Queue는 FIFO구조로 처음 들어온 객체가 먼저 나가는 자료구조입니다. 한 줄 서기와 같이 먼저 줄을 선 사람이 먼저 나가는 구조 입니다. Java에서는 java.util 패키지의 Queue를 사용하지만 선언 시에는 LinkedList 또는 ArrayDequeue를 사용합니다. Queue는 Interfac..

Develop/Algorithm 2021.02.07

[SSAFY] 3주차 느낀 점

SSAFY 수업 SSAFY의 진도는 휘모리 장단마냥 휘몰아치며 나간다... (+ 데일리 과제도 있다) 사실 나는 학부 수업 때도 Java를 배운 적이 없었고 코딩을 별로 해본 적이 없었다. 코딩테스트도 Python을 사용하다가 작년 1월 쯤 운이 좋게 삼성 SDS에서 진행하는 동계 알고리즘 특강에 입과하게 되어 Java로 전향한 케이스다. (입과 시험에서는 Python 사용이 가능했으나 수업은 C++, Java로만 진행되어 강제 변경했다. 과거 C++ 배우다 포인터에서 좌절한 경험이 있어서 Java를 선택했다.) 단순히 알고리즘 풀기 위해 개념보다 Java 사용법에만 집중하여 공부했다. 그러다 운 좋게 스터디에서 Spring을 사용한 프로젝트를 하면서 주력 언어가 Java가 되었다. 하지만 개념을 배운 ..

Diary/SSAFY 2021.01.30

[Java/디자인패턴]Singleton/싱글톤

생성자가 여러번 호출되더라도 하나의 인스턴스만을 생성하는 패턴 장단점장점메모리 효율적다른 인스턴스와 데이터 공유공통된 객체를 여러개 생성하여 사용하기에 편리 단점객체지향의 개방-폐쇄 원칙을 위배 → 수정과 테스트 어려움사용방법선언하고자 하는 객체 private static 선언 생성자 private 선언 객체를 받아오는 메소드 public static 선언public class Car { private static Car instance = new Car(); private Car() { } public static Car getInstance() { return instance; } ... // 다른 메소드들 } public class carTest { public static void main(Str..

Develop/Java 2021.01.22