코테 공부

· Algorithm
- 알고리즘 분류 : 구현 - 사용 언어 : JAVA - 문제 요점 첫 번째와 마지막 벽을 제외한 벽을 확인 양 옆의 최대 벽 길이 구한 후 두 개의 벽 중 작은 값에서 현재의 벽 높이를 뺀 값 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; // Link : https://www.acmicpc.net/problem/14719 public class Main{ public static int H, W; public static int[] heightArr; public static int res..
· Algorithm
- 알고리즘 분류 : BFS - 사용 언어 : JAVA - 문제 요점 기울이면 벽을 만날 때까지 구슬이 이동한다. (한 칸씩 움직일 수 있는 것이 아니다.) 공은 동시에 움직임. 빨간 구슬이 구멍에 빠지면 성공이지만, 파란 구슬이 구멍에 빠지면 실패 빨간 구슬과 파란 구슬은 동시에 같은 칸에 있을 수 없다. 또, 빨간 구슬과 파란 구슬의 크기는 한 칸을 모두 차지 최소 몇 번 만에 빨간 구슬을 구멍을 통해 빼낼 수 있는지 구하는 프로그램(10번 내로 못 빼내면 -1 출력) 최단 거리를 찾아야 하기 때문에(10 이하) DFS가 아닌 BFS를 이용하여 탐색하였음 문제 풀이에 도움받은 블로그 : https://minhamina.tistory.com/191 소스 설명은 주석을 참고해주세요. import java..
· Algorithm
- 알고리즘 분류 : 구현 - 사용 언어 : JAVA - 문제 요점 주사위를 굴렸을 때, 이동한 칸에 쓰여 있는 수가 0이면, 주사위의 바닥면에 쓰여 있는 수가 칸에 복사된다. 0이 아닌 경우에는 칸에 쓰여 있는 수가 주사위의 바닥면으로 복사되며, 칸에 쓰여 있는 수는 0이 된다. 주사위 굴리는 것을 어떻게 구현해야 하나 고민 및 삽질 중 이해하는데 도움을 준 유튜브 링크를 공유합니다. https://youtu.be/KK-HwJ818xk 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.ut..
· Algorithm
- 알고리즘 분류 : 구현, BFS - 사용 언어 : JAVA - 문제 요점 아기 상어는 가까이 있는 물고기를 먹는다. 같은 거리의 물고기가 많을 경우 위쪽에 있는 것을 먼저 먹고, 그 다음 왼쪽에 있는 것을 먼저 먹는다. 아기상어의 크기보다 작은 물고기만 먹을 수 있다. 아기상어의 크기보다 큰 물고기는 해당 구역을 지나갈 수 없다. 아기상어의 크기만큼 물고기를 먹으면 크기가 1 증가한다. (크기 증가하면 물고기를 먹은 횟수는 초기화) '상좌우하'로 BFS탐색을 해서 찾으면 바로 물고기를 먹게 구현하였는데, 이렇게 구현하니 의도대로 되지 않았다. → 최단 거리의 물고기를 탐색 후 먹도록 구현함. 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java..
· Algorithm
- 알고리즘 분류 : 구현 / DFS - 사용 언어 : JAVA - 문제 요점 DFS를 이용하여 ㅗ 모양을 제외한 나머지 모양을 만들 수 있다. ㅗ모양은 十자 모양으로 만드는 것을 목표로 한 후, 十자 모양인 경우 가장 낮은 값을 가진 사각형을 빼주면 된다. 모든 좌표에 대하여 DFS와 ㅗ모양탐색하는 함수를 적용하면 된다. - 테트리미노에는 아래의 도형이 있다. 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { // N : 높이, M : 넓이 public sta..
· Algorithm
- 알고리즘 분류 : 다익스트라 알고리즘 - 사용 언어 : JAVA - 문제 요점 소를 비용이라고 생각한다. 다익스트라 알고리즘에 대해 알고있으면 쉬운 문제 결과 출력 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.PriorityQueue; import java.util.StringTokenizer; public class Main { public static int N, M; public static ArrayList map =..
· Algorithm
- 알고리즘 분류 : 구현 - 사용 언어 : JAVA - 문제 요점 땅 주위의 상하좌우에 인접한 바다가 3개 이상이면 녹는다. 주어진 지도의 범위 바깥은 바다로 쳐야한다. 땅이 녹으면 그에 맞게 범위도 줄어들어야한다. 소스 설명은 주석을 참고해주세요. import java.util.*; public class Main { public static int R; public static int C; public static char [][] map; public static char [][] tempMap; public static final int[] dx = {0, 0, 1, -1}; public static final int[] dy = {1, -1, 0, 0}; public static void ma..
· Algorithm
- 알고리즘 분류 : 문자열, 스택 - 사용 언어 : JAVA - 문제 요점 닫힌 괄호는 가장 마지막에 들어온 열린 괄호와 확인하기 때문에 스택을 이용하였다. 문제에서는 소괄호만 주어져있지만, 필자는 자체적으로 대괄호와 중괄호도 있다고 가정하고 구현하였다. 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class Main { // 해당 문자열 정합성 검사 public static String isClear(String str) { Stack s = new Stack(); for(int j=0; j
멍목
'코테 공부' 태그의 글 목록 (6 Page)