분류 전체보기
-
[SWEA] 특이한 자석Algorithm/SWEA 2020. 11. 30. 18:58
+) 이전 풀이 4ngeunlee.tistory.com/228 [SWEA] 특이한 자석 [4013] 특이한 자석 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIeV9sKkcoDFAVH 하나의 자석이 1 칸 회전될 때, 붙어 있는 자석은 서로 붙어 있는 날의 자성과 다를 경우에.. 4ngeunlee.tistory.com 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 5..
-
[BOJ] 문제집Algorithm/BOJ 2020. 11. 30. 15:00
[1766] 문제집 www.acmicpc.net/problem/1766 Solution N개의 문제를 모두 풀어야하는데, 문제 풀이 순서에 있어 두 가지 조건을 고려해야한다. 첫째, 숫자가 작은 문제부터 풀어야한다. 둘째, 먼저 풀어야하는 길잡이 문제부터 풀어야 한다. 일반적인 위상정렬에서 q를 오름차순 pq로 바꾸어 쉽게 풀 수 있었다. 알고리즘 분류가 우선순위 큐로 되어있길래 풀었는데, 위상정렬 문제였다. 덕분에 위상정렬 공부까지 했음. 4ngeunlee.tistory.com/365 [Algorithm] 위상 정렬 위상 정렬 방향이 있는 그래프의 순서 정렬 위상 정렬이 가능하려면 DAG(Directed Acycle Graph, 방향성이 있으며 사이클이 없는 그래프)이여야 한다. 위상 정렬을 구현하는 ..
-
위상 정렬(Topological Sort)Algorithm/이론 2020. 11. 29. 19:04
위상 정렬 방향이 있는 그래프의 순서 정렬 위상 정렬이 가능하려면 DAG(Directed Acycle Graph, 방향성이 있으며 사이클이 없는 그래프)이여야 한다. 위상 정렬을 구현하는 방법에는 DFS를 사용하거나 indegree 배열을 사용하여 구현하는 방법이 있다. 본 포스팅에서는 후자를 선택하여 구현하는 방법을 알아볼 것이다. 필요한 자료구조 & 변수 변수 설명 List graph 그래프 관계 표현을 위한 2차원 인접 리스트 int[] indegree 해당 노드를 가리키는 간선의 갯수를 담기 위한 배열 Queue q indegree 값이 0이 된 노드를 담기 위한 Queue List result 결과를 담기 위한 리스트 Flow 1. indegree가 0인(=나를 가리키는 노드가 없는) 노드들을 ..
-
[BOJ] 행성 터널Algorithm/BOJ 2020. 11. 28. 17:20
[2887] 행성 터널 www.acmicpc.net/problem/2887 Solution 행성들을 잇는 최소 간선 트리를 만드는 간단한 문제이다. 처음에는 행성을 이을 수 있는 모든 간선을 미리 구해서 푸는 방식으로 접근했는 데 메모리 초과로 틀렸다. int x, y, z -> 12byte이고, 행성 개수가 최대 10만개이기 때문에 (10만 * 10만 / 2) = 약 50억으로 12byte * 50억이라하면 메모리가 초과될 수 밖에 없었다. 문제를 다시 한 번 살펴보면 행성의 x, y, z 좌표를 각각 비교해서 최소 비용을 구하는 것이므로 모든 행성간의 비용을 계산할 필요 없이 좌표 별로 오름차순으로 정렬한 뒤 바로 옆 행성만 비교하면 된다. 예를들어 행성 A, B, C의 x좌표를 기준으로 정렬한 결과..
-
[BOJ] 진우의 민트초코우유Algorithm/BOJ 2020. 11. 27. 17:12
[20208] 진우의 민트초코우유 www.acmicpc.net/problem/20208 Solution 집 - 민초s - 집 까지 체력을 유지하면서 돌아올 수 있는 경우 중 최대 민초집 수를 구하는 문제 permutation으로 민초집 수를 늘리면서 & 순서를 달리한 경로를 pick 배열에 저장했고, 체력을 유지한 채 집까지 돌아올 수 있는 최대 민초집 수를 answer에 저장하여 풀었다. 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61..
-
[Java] enum 사용법Programming/Java 2020. 11. 4. 21:11
woowabros.github.io/tools/2017/07/10/java-enum-uses.html Java Enum 활용기 - 우아한형제들 기술 블로그 안녕하세요? 우아한 형제들에서 결제/정산 시스템을 개발하고 있는 이동욱입니다.이번 사내 블로그 포스팅 주제로 저는 Java Enum 활용 경험을 선택하였습니다. 이전에 개인 블로그에 Enum에 관해 woowabros.github.io www.opentutorials.org/module/1226/8025 63. enum 클래스의 사용과 이해 - level up 과정 [JAVA] enum : 열거형 (JDK 1.5 ↑) 클래스처럼 보이게 하는 상수 서로 관련 있는 상수들을 모아 심볼릭한 명칭의 집합으로 정의한 것 Enum 클래스형을 기반으로 한 클래스형 ..
-
Spring과 Spring BootProgramming/TIL 2020. 11. 4. 20:37
Spring Spring은 우리가 원하는 프로그램을 만들기 위해 미리 만들어진 골격을 토대로 원하는 대로 살을 붙여 개발할 수 있도록 조력자의 역할을 하는 프레임워크이다. 위키백과에 따르면 기본적으로 Java 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. Spring 프레임워크는 인프라와 관련된 내용을 애플리케이션 레벨에서 설정하도록 해줌으로써 개발자가 코드로 대부분을 컨트롤할 수 있게 지원한다. 즉, 개발자가 코드 안에 애플리케이션 동작에 대한 내용을 기술하면 Spring 프레임워크가 이를 해석해서 동작하는 것이다. 의존성 주입(DI), 제어의 역전(IOC), 관점지향 프로그래밍(AOP)은 Spring의 중요하면서 강력한 특징이다..