본문 바로가기

Algorithm/BOJ

(101)
[BOJ-17135][시뮬레이션/조합] 캐슬 디펜스 - Java 문제 바로가기 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net 삼성 SW 역량테스트 A형 기출문제입니다. 구현이 쪼오오금 까다로운 시뮬레이션 문제입니다. 궁수가 쏴죽이는 적들의 최대를 구하면 됩니다. import java.io.*; import java.util.*; class Dir{ int y, x; Dir(int y, int x){ this.y = y; this.x = x; } } public class Main { static int N, M, D; static int[][] map; static int ans =..
[BOJ-1931][Greedy] 회의실배정 - Java 문제 바로가기 1931번: 회의실배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 회의실을 사용할 수 있는 회의의 최대 개수를 구하면 됩니다. Greedy Algorithm의 대표적인 문제입니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; class Meeting implements Comparable{ int start, end; public Meeting(int start, int end) { super(); this..
[BOJ-13460][BFS/시뮬레이션] 구슬탈출 2 - Java 문제 바로가기 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 드뎌 풀어씀다... 4개월전에 이래 풀고 저래 풀고 해도 안됐는데... 드뎌 풀고야 말아씀다... 빨간 공 파란 공 두개를 계속 체크해줘야 되고 이것저것 고려해야할 게 증말 많습니다... 4차원 배열로 풀면 간단하다는데 제 머리론 이해가 안됩니다 ^^;; import java.util.*; class Dir{ int y, x, day; Dir(int y, int x, int day){ this.y =..
[BOJ-7576][BFS] 토마토 - Java 문제 바로가기 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토� www.acmicpc.net 몇가지 조건이 달려있는 간단한 BFS 문제입니다. 하루가 지나면 익은 토마토의 사방에 있는 토마토가 익는다고 하니, visited 배열을 활용해서 답을 구해주면 됩니다. import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; class Dir{ int y, x; Dir(int y, int x){ ..
[BOJ-14890][시뮬레이션] 경사로 - Java 문제 바로가기 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 삼성전자 코테 기출문제입니다.. 특별한 알고리즘을 요구하지는 않는 시뮬레이션 문젠데 이것저것 고려해야 할게 넘 많아서 예전에 못풀었다가 요번에 풀어씀다.. 꽤 빨리 풀긴 했는데 코드가 쪼까 지저분합니다 ㅜ package PS; import java.util.Scanner; class Main{ static int[][] map; static int L; static int ans = 0; static void solve(int[] line) { int start = lin..
[BOJ-3190][시뮬레이션] 뱀 - Java 문제 바로가기 3190번: 뱀 문제 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. www.acmicpc.net 뱀이 왔다갔다 하는 문제임니다. 문제에서 요구하는 조건만 잘 생각해서 코드를 짜면 됩니다.. import java.util.Deque; import java.util.LinkedList; import java.util.Scanner; class Dir{ int y; int x; Dir(int y, int x){ this.y = y; this.x = x; } } class Move{ int sec; char dir; Move(int sec, char dir..
[BOJ-14502][BFS/시뮬레이션] 연구소 - Java 문제 바로가기 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크� www.acmicpc.net N x M 크기의 연구소에서 벽을 꼭 3개를 세워서 바이러스가 퍼지는 것을 막는 문제입니다. 벽을 세운 뒤 바이러스가 퍼지고 안전 영역의 최대값을 구하면 됩니다. import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; class Dir { int y; int x; Dir(int y,..
[BOJ-11726][DP] 2×n 타일링 - Java 문제 바로가기 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 문제입니다. 점화식을 구해보면 dp[n] = dp[n-2] + dp[n-1] 가 됩니다.. n=4 정도까지 해보니 얼추 나오는디 사실 어떻게 하면 점화식을 잘 구하는지 잘 모르겠슴다 ㅜ //top-down private static int topDown(int n){ if(n == 0 || n == 1) return 1; if(dp[n] != 0) return dp[n]; dp[n] = topDo..