0. 서론 분명 커밋과 푸시까지 마쳤음에도, 깃허브에 반영이 됨을 확인했음에도 깃허브 잔디가 심어지지 않는 상황을 해결하는 방법을 알려준다. 기본적인 깃허브의 레포지토리 주소를 확인하는 법, terminal을 사용하는 데 어려움이 있다면 아래 포스트를 확인하면 된다. 2023.01.25 - [Git·Github] - [Git·Github] clone부터 push까지 0-1. 왜 잔디가 심어지지 않는가? 공식 문서 링크 먼저 잔디(Contribution)를 추가하기 위해서는 아래의 조건을 만족해야 한다. 1. commit한 계정이 Github 계정과 같아야 한다. 2. commit이 fork한 repository가 아니어야 한다. 3. commit이 메인 브랜치에서 일어나야 한다. 1번은 커밋을 할 때 사..
0. 서로소 집합서로소(상호배타) 집합은 서로 중복 포함된 원소가 없는 집합이다. 즉, 교집합이 없는 집합을 의미한다.집합에 속한 하나의 특정 멤버를 통해 각 집합들을 구분하며 이를 대표자(representative)라 한다.서로소 집합을 표현하는 방법연결 리스트트리 → 구현이 쉬움서로소 집합 연산Make-Set(x) - 유일한 멤버 x를 포함하는 새로운 집합을 생성 (서로소 집합 초기화 작업)Find-Set(x) - x를 포함하는 집합을 찾는 연산 (대표자 탐색)Union(x, y) - x와 y를 포함하는 두 집합을 통합하는 연산1. 서로소 집합 표현1-1. 연결 리스트같은 집합의 원소들은 하나의 연결 리스트로 관리한다.연결 리스트의 맨 앞의 원소를 집합의 대표 원소로 삼는다.각 원소는 집합의 대표원소..
0. 위상 정렬(Topological Sort)위상 정렬은 유향 그래프의 정점들을 나열하는 것을 의미한다.순서가 정해져 있는 작업들을 차례대로 수행해야 할 때, 그 순서를 결정해주는 알고리즘으로 위상 정렬의 결과는 여러 개일 수 있다.가장 잘 설명되는 예시로는 선수과목(prerequisite) 구조이다. 만약 특정 수강 과목에 선수 과목이 있다면 그 선수 과목부터 수강해야 하므로, 특정 과목들을 수강해야 할 때 위상 정렬을 통해 수강 순서를 찾아낼 수 있다.위상 정렬이 성립하기 위해서는 그래프의 순환이 존재하지 않는 비순환 유향 그래프(directed acyclic pragh)여야 한다. 위상 정렬은 아래 2가지에 대한 판단이 가능하다.현재 그래프는 위상 정렬이 가능한지 → 사이클이 존재하지 않는지위상 ..
0. 서론 Java Stream API는 Collections API와 유사하게 object와 함께 동작하도록 설계된 API입니다. 그러나 Stream은 원시 타입(Primitive Type)은 object처럼 다루지 못한다. Stream API에는 3가지 stream of primitives가 존재한다. 해당 stream of primitives를 stream of objects로 변환시켜주는 함수가 바로 boxed()이다. IntStream → Stream LongStream → Stream DoubleStream → Stream 1. 사용법 아직까지 IntStream을 사용한 적은 없고, 주로 int[]를 바로 stream으로 활용할 때 boxed() 함수를 사용한다. 1-1. int[ ] → Li..
0. 그래프그래프는 아이템과 이들 사이의 연결 관계를 표현하는 자료구조이다.그래프는 정점(Vertex)들의 집합과 이들을 연결하는 간선(Edge)들의 집합으로 구성된 자료 구조이다.정점(Vertex): 그래프의 구성요소로 하나의 연결점간선(Edge): 두 정점을 연결하는 선차수(Degree): 정점에 연결된 간선의 수인접(Adjacency): 두 개의 정점에 간선이 존재(연결됨)하면 서로 인접해 있다고 한다.경로(Path): 어떤 정점에서 시작하여 다른 정점으로 끝나는 순회로 두 정점 사이를 잇는 간선들을 나열한 것싸이클(Cycle): 경로의 시작 정점과 끝 정점이 같음(시작한 정점에서 끝나는 경로)V개의 정점을 가지는 무향 그래프는 최대 V * (V-1) / 2개의 간선이 가능하다.선형 자료구조나 트리..