개발 일지

CS/알고리즘

[알고리즘] 순열, 조합, 부분 집합

0. 순열, 조합, 부분집합알고리즘 문제를 풀다 보면, 특정 원소에서 몇개를 뽑아 써야 하는 경우가 종종 있다.이 때, 알고 있어야 하는 순열과 조합 그리고 부분집합을 구현하는 방식을 작성했다.1. 순열서로 다른 n개 중 r개를 뽑아서 한 줄로 나열하는 것 2. 조합서로 다른 n개 중 r개를 순서 없이 골라내는 것 3. 부분집합집합에 포함된 원소들을 선택하는 것 → n개의 원소에는 공집합을 포함하여 2^n개이다.

CS/알고리즘

[알고리즘] 비선형 자료구조 완전탐색: BFS/DFS

0. 비선형 자료구조 완전탐색비선형 자료구조는 1:1이 아니기 때문에 일반적인 방식으론 탐색하기 어렵다.따라서 비선형 자료구조를 탐색하기 위한 방식인 BFS와 DFS를 알아보도록 하자.코드 구현은 간단하게 트리 형태를 2중 리스트를 통해 구현할 예정이다. 해당 알고리즘은 방문 여부를 체크하면 그래프, 2차원 배열 등에서도 사용된다.1. 너비 우선 탐색(Breadth First Search, BFS)루트 노드의 자식 노드들을 먼저 모두 차례로 방문한 후에, 방문했던 자식 노드들을 기준으로 하여 다시 해당 노드의 자식 노드들을 차례로 방문하는 방식인접한 노드들에 대해 탐색을 한 후, 차례로 다시 너비우선탐색을 진행해야 하므로 선입선출 형태의 자료구조인 큐를 활용한다.2. 깊이 우선 탐색(Depth First..

Git·Github

[Git·Github] 특정 커밋 시점으로 되돌리기

0. 서론 특정 커밋 상태로 되돌리고 싶은 경우 커밋의 해시값을 이용해 돌아갈 수 있다. 1. reset git reset --hard [커밋 해시값]

JAVA/기타

[JAVA] 에러 발생 시, 손쉽게 재입력 받기(함수형 인터페이스)

0. 서론 우아한테크코스 과제 중 잘못된 입력 시 에러 발생 후 재입력을 받아야 하는 경우가 있었다. 단순히 그런 경우마다 try catch문을 이용해 해결하는 것보다 이 방법을 이용하면 손쉽게 재입력을 할 수 있게 된다. 1. 클래스 정의 import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Supplier; public class Repeat { public static T repeat(Supplier inputReader) { while (true) { try { return inputReader.get(); } catch (IllegalArgumentException e) { ..

Dreaming-J
'분류 전체보기' 카테고리의 글 목록 (4 Page)