java
-
[자료구조] Priority Queue(우선 순위 큐)Development/Data Structure 2020. 5. 3. 16:05
다룰 내용 Priority Queue란 무엇인가? Priority Queue 구현 방법 PrioriyQueue의 우선 순위 기준 부여하기(Java) - Comparable, Comparator Priority Queue란 무엇인가? 우선 순위에 따라 데이터가 추출되는 자료구조입니다. 따라서 들어간 순서에 상관없이 우선 순위가 높은 데이터가 먼저 추출됩니다. Prioriy Queue를 구현하는 방법 배열로 구현하는 방법 연결 리스트로 구현하는 방법 Heap을 이용하는 방법 배열로 구현하는 방법 구현하는 방법은 간단하나 데이터 삽입 및 삭제가 일어날 때마다 당기거나 미는 연산을 계속해서 연산이 많다는 단점이 있습니다. 또한 들어오는 데이터의 삽입 위치를 결정하기 위해 저장되어 있는 모든 데이터들과 우선 순위..
-
[백준] 14503_로봇 청소기(java)Problem Solving/BOJ 2020. 4. 20. 15:41
https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 벽 또는 빈 칸이다. 청소기는 바라보는 방향이 있으며, 이 방향은 동, 서, 남, 북중 하나이다. 지도의 각 칸은 (r, c)로 나타낼 수 있고, r은 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로 부터 떨어진 칸의 개수이다. 로봇 청소기는 다음 www.acmicpc.net 문제 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 ..
-
[백준] 16236_아기 상어(java)Problem Solving/BOJ 2020. 4. 8. 00:47
https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가지고 있고, 이 크기는 자연수이다. 가장 처음에 아기 상어의 크기는 2이고, 아기 상어는 1초에 상하좌우로 인접한 한 칸씩 이동한다. 아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, 나머지 칸은 모두 지나갈 수 있다. 아기 상어는 자신의 크 www.acmicpc.net 문제 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에..
-
[알고리즘 정리] 재귀Development/Algorithm 2020. 4. 8. 00:19
다룰 내용 재귀란 무엇인가? 재귀를 구현할 때 주의할 점 Factorial Fibonachi 재귀란 무엇인가? 자신의 메소드 내부에서 자신의 메소드를 호출하는 것 재귀를 구현할 때 주의할 점 1) 메소드의 역할을 명확히 해야 함. 2) 자신이 해야할 일과 나머지 작업으로 분리해야 함. 3) 기저 조건이 반드시 있어야 함. (재귀 탈출 조건) -> 기저가 없으면 스택 오버 플로우 발생 4) 재귀의 깊이를 생각해야 함. (상태 공간 트리 활용) 5) 깊이뿐만 아니라 수행시간도 고려해야 함. Factorial 5! -> 5 * 4 * 3 * 2 * 1 => 이는 5 * 4! 형태로 이해할 수 있음. => 또 5 * 4 * 3! 형태로도 이해할 수 있음. => 5 * 4 * 3 * 2! 형태 => 5 * 4 *..
-
[프로그래머스] 42587_프린터(java, c++)Problem Solving/PROGRAMMERS 2019. 11. 10. 00:12
문제 설명 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 예를 들어, 4개의 문서(A, B, C, D)가 순서대로 인쇄 대기목록에 있고 중요도가 2 1 3 2 라면 C D A B 순으로 인쇄하게 됩니다. 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 ..