Algorithm

· 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 - 문제 요점 맞닿은 톱니바퀴의 톱니가 서로 다르면 거꾸로 회전, 같으면 동작X 회전하기 전에 체크해야함. 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; /** * 맞닿은 톱니바퀴의 톱니가 서로 다르면 거꾸로 회전, 같으면 동작X * 회전하기 전에 체크해야함. * */ // Link : https://www.acmicpc.net/prob..
· Algorithm
- 알고리즘 분류 : BFS - 사용 언어 : JAVA - 문제 요점 기울이면 벽을 만날 때까지 구슬이 이동한다. (한 칸씩 움직일 수 있는 것이 아니다.) 공은 동시에 움직임. 빨간 구슬이 구멍에 빠지면 성공이지만, 파란 구슬이 구멍에 빠지면 실패 빨간 구슬과 파란 구슬은 동시에 같은 칸에 있을 수 없다. 또, 빨간 구슬과 파란 구슬의 크기는 한 칸을 모두 차지 최소 몇 번 만에 빨간 구슬을 구멍을 통해 빼낼 수 있는지 구하는 프로그램(10번 내로 못 빼내면 -1 출력) 최단 거리를 찾아야 하기 때문에(10 이하) DFS가 아닌 BFS를 이용하여 탐색하였음 문제 풀이에 도움받은 블로그 : https://minhamina.tistory.com/191 소스 설명은 주석을 참고해주세요. import java..
· Algorithm
- 알고리즘 분류 : BFS - 사용 언어 : JAVA 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { // 상하좌우 이동에 사용 public static int[] ymove = {-1,1,0,0}; public static int[] xmove = {0,0,1,-1}; // 좌표 클래스 public static class Pos{ int y; int x; publ..
· 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 - 문제 요점 1초 안에 일어나는 일 : 미세먼지 확산 → 공기청정기 가동 미세먼지 확산 미세먼지의 좌표를 저장해두고, 이 좌표들의 상하좌우로 퍼트린다. 공기청정기 가동 공기청정기 위쪽과 아래쪽을 기준으로 가동시킨다. T초만큼 반복한 후 미세먼지의 합계 출력 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { publ..
멍목
'Algorithm' 카테고리의 글 목록 (13 Page)