본문 바로가기

Algorithm/백준풀이40

[알고리즘 문제풀이] 백준 1938 통나무 옮기기 (JAVA코드) https://www.acmicpc.net/problem/1938 1938번: 통나무 옮기기 첫째 줄에 주어진 평지의 한 변의 길이 N이 주어진다. (4 ≤ N ≤ 50) 주어진다. 이어서 그 지형의 정보가 0, 1, B, E로 이루어진 문자열로 주어진다. 한 줄에 입력되는 문자열의 길이는 N이며 입력 문 www.acmicpc.net /** * bfs 구현 * * 1. 50*50 크기 * * 2. bfs를 나무의 중심으로 방문여부 체크하여 진행 * 2-1) bfs엔 나무의 중심과 가로 세로 여부 확인. * * 3. 각 조건별로 모듈화해서 진행 예정 * * 4. 최종 목적지 도착 최소 동작 회수 출력 * */ import java.util.*; import java.io.*; public class Mai.. 2022. 4. 27.
[알고리즘 문제풀이] 백준 1726 로봇 (JAVA코드) https://www.acmicpc.net/problem/1726 1726번: 로봇 많은 공장에서 로봇이 이용되고 있다. 우리 월드 공장의 로봇은 바라보는 방향으로 궤도를 따라 움직이며, 움직이는 방향은 동, 서, 남, 북 가운데 하나이다. 로봇의 이동을 제어하는 명령어는 www.acmicpc.net /** * 1. 100*100 맵 크기. * * 2. 로봇의 위치와 방향, 도착위치와 도착방향이 주어짐. * * 3. 몇번의 명령만에 도착할 수 있는지 체크하여 반환. * * --------------------------------------------- * * 1. bfs로 행할 수 있는 모든 명령 실행.(총 5개) * * 2. 해당좌표에 해당방향으로 방문했었는지 체크. * * 3. 방문안했었고 이동 가.. 2022. 4. 8.
[알고리즘 문제풀이] 백준 15686 치킨 배달 (JAVA코드) https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net /** * 1. 50*50 맵 크기. 최대 13개의 치킨집 고를 수 있음 * * 2. m개의 치킨집 선택. * 2-1) 50*50 에서 m개를 고를려면 시간복잡도 문제가 됨.. * 2-2) 맵에서 치킨집리스트를 별도로 빼고, 그 안에서 선택!(최대 13개 있다고 함.) * 2-3) 13개중에서 m개 선택 시간복잡도. 13Cm * * 3. 선택한 치킨집에서 집리스트를 돌면서 거.. 2022. 4. 6.
[알고리즘 문제풀이] 백준 14500 테트로미노(JAVA코드) https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net /** * 1. 맵 크기 500*500 * * 2. 4칸짜리 테트로미노를 둬서, 최대 정수 합의 크기 출력 * * 3. 각 칸마다 4칸을 갈 수 있는 모든 경우의 수 구해보기? * 500*500 * 4*4*4*4 가능.. * * 4. 2중 포문으로 각 칸을 넣고, dfs를 통해 4칸 가보기로 코드 진행 * * 5. 들렸던 칸은 방문하지 않아야하므로 체크할 visited 필요 * * 6. 0 0 0.. 2022. 4. 5.
[알고리즘 문제풀이] 백준 2293 동전 1(JAVA코드) https://www.acmicpc.net/problem/2293 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net /** * 1. n개의 동전 종류를 이용해 k원 맞추기 * * 2. 모든 경우의 수 출력 * * 3. 완탐은 불가능하므로 DP 사용 * * 4. DP[가치] = 경우의 수 * * 5. 2중 포문으로 동전과 가치를 돌려, * 각 동전마다 가치에 나올 수 있는 경우의수를 구하고 * 더해가며 진행 * * 6. 가치 다음에 동전을 돌리면 중복이 존재함.. */ import java.util.*; impor.. 2022. 4. 4.
[알고리즘 문제풀이] 백준 7579 앱(JAVA코드) https://www.acmicpc.net/problem/7579 7579번: 앱 입력은 3줄로 이루어져 있다. 첫 줄에는 정수 N과 M이 공백문자로 구분되어 주어지며, 둘째 줄과 셋째 줄에는 각각 N개의 정수가 공백문자로 구분되어 주어진다. 둘째 줄의 N개의 정수는 현재 활 www.acmicpc.net import java.util.*; import java.io.*; /** * 1. 앱 메모리와 비용(n개)과 구해야할 메모리(m)가 주어짐. * * 2. dp[앱][최소비용] = 최대메모리 * * 3. 2중 포문으로 돌면서 m이상 중 최소비용 저장해두기 * */ public class Main { public static void main(String[] args) throws IOException{ .. 2022. 4. 2.
[알고리즘 문제풀이] 백준 21611 마법사 상어와 블리자드(JAVA코드) https://www.acmicpc.net/problem/21611 21611번: 마법사 상어와 블리자드 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그, 비바라기 마법을 할 수 있다. 오늘 새로 배운 마법은 블리자드이고, 크기가 N×N인 격자에서 연습하려고 한다. N은 항상 홀수이고, ( www.acmicpc.net /** * 1. 맵 생성 * * 2. 각 모듈화를 통해 구현할 예정 */ import java.util.*; import java.io.*; public class 마법사상어와블리자드 { public static int n,m, result,sx,sy; public static ArrayList numberMap = new ArrayList(); public static int[.. 2022. 4. 1.
[알고리즘 문제풀이] 백준 21610 마법사 상어와 비바라기(JAVA코드) https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net /** * 1. 맵 생성 * * 2. 각 모듈화를 통해 구현할 예정 */ import java.util.*; import java.io.*; public class Main { public static int n,m; public static int[][] map; public static Queue cloud; public static int[][] dirXY = {{0,-1},{-1,-.. 2022. 3. 31.