분류 전체보기 50

[백준] 4179번 : 불! - 자바(Java)

Problem 🔒문제https://www.acmicpc.net/problem/4179 지훈이는 미로에서 일을 한다. 지훈이를 미로에서 탈출하도록 도와주자!미로에서의 지훈이의 위치와 불이 붙은 위치를 감안해서 지훈이가 불에 타기전에 탈출할 수 있는지의 여부, 그리고 얼마나 빨리 탈출할 수 있는지를 결정해야한다.지훈이와 불은 매 분마다 한칸씩 수평또는 수직으로(비스듬하게 이동하지 않는다) 이동한다.불은 각 지점에서 네 방향으로 확산된다.지훈이는 미로의 가장자리에 접한 공간에서 탈출할 수 있다.지훈이와 불은 벽이 있는 공간은 통과하지 못한다.입력입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다.다음 입력으로 ..

[백준] 20055번 : 컨베이어 벨트 위의 로봇 - 자바(Java)

Problem 🔒문제https://www.acmicpc.net/problem/20055 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부터 2N까지의 번호가 매겨져 있다. 벨트가 한 칸 회전하면 1번부터 2N-1번까지의 칸은 다음 번호의 칸이 있는 위치로 이동하고, 2N번 칸은 1번 칸의 위치로 이동한다. i번 칸의 내구도는 Ai이다. 위의 그림에서 1번 칸이 있는 위치를 "올리는 위치", N번 칸이 있는 위치를 "내리는 위치"라고 한다.컨베이어 벨트에 박스 모양 로봇을 하나씩 올리려고 한다. 로봇은 올리는 위치에만 올릴 수 있다. 언제든지 로봇이 내리는 ..

[백준] 5427번 : 불 - 자바(Java)

Problem 🔒문제https://www.acmicpc.net/problem/5427 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다.매 초마다, 불은 동서남북 방향으로 인접한 빈 공간으로 퍼져나간다. 벽에는 불이 붙지 않는다. 상근이는 동서남북 인접한 칸으로 이동할 수 있으며, 1초가 걸린다. 상근이는 벽을 통과할 수 없고, 불이 옮겨진 칸 또는 이제 불이 붙으려는 칸으로 이동할 수 없다. 상근이가 있는 칸에 불이 옮겨옴과 동시에 다른 칸으로 이동할 수 있다.빌딩의 지도가 주어졌을 때, 얼마나 빨리 빌딩을 탈출할 수 있는지 구하는 프로그램을 작성하시오.입력첫째 줄에 테스트 케이스의 개수가 주어진다. 테스트 케이스는 최대 100개이다.각..

[백준] 14719번 : 빗물 - 자바(Java)

Problem 🔒문제https://www.acmicpc.net/problem/14719 2차원 세계에 블록이 쌓여있다. 비가 오면 블록 사이에 빗물이 고인다.비는 충분히 많이 온다. 고이는 빗물의 총량은 얼마일까?입력첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500)두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치부터 차례대로 W개 주어진다.따라서 블록 내부의 빈 공간이 생길 수 없다. 또 2차원 세계의 바닥은 항상 막혀있다고 가정하여도 좋다.출력2차원 세계에서는 한 칸의 용량은 1이다. 고이는 빗물의 총량을 출력하여라.빗물이 전혀 고이지 않을 경우 0을 출력하여라.더보기예제 입력 14 43..

[백준] 17406번 : 배열 돌리기 4 - 자바(Java)

Problem 🔒문제https://www.acmicpc.net/problem/17406 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 값은 4이다.1 2 32 1 14 5 6 배열은 회전 연산을 수행할 수 있다. 회전 연산은 세 정수 (r, c, s)로 이루어져 있고, 가장 왼쪽 윗 칸이 (r-s, c-s), 가장 오른쪽 아랫 칸이 (r+s, c+s)인 정사각형을 시계 방향으로 한 칸씩 돌린다는 의미이다. 배열의 칸 (r, c)는 r행 c열을 의미한다.예를 들어, 배열 A의 크기가 6×6이고, 회전 연산이 (3, 4, 2)인 경우에는 ..

[백준] 9090번 : 틱택토 이기기 - 자바(Java)

Problem 🔒문제https://www.acmicpc.net/problem/9290 남규는 재우와 틱택토를 하던 도중, 거의 이기기 직전에 다다랐다! 남규의 승리로부터 단 한 단계 전의 틱택토 게임판이 주어졌을 때, 승리를 위해 말을 어디에 놓아야 할지 알아내자.입력첫 번째 줄에는 테스트 케이스의 개수가 주어진다.각 테스트 케이스는 현재 틱택토 게임판의 상태를 3줄에 걸쳐 나타내며, 그 다음 줄에는 남규의 말(x 또는 o)이 무엇인지가 주어진다. 게임판의 상태는 'x', 'o', '-'(빈칸)으로 이루어진다. 반드시 다음 한 번의 행동으로 남규가 게임을 이길 수 있는 상태만 주어진다.출력각 테스트 케이스마다 "Case x:"와 공백을 출력한 후, 아래의 3줄에 걸쳐 남규가 다음 한 수로 이긴 후 게임..

[Java] 자바 StringTokenizer 클래스 메서드 정리

StringTokenizerjava.util에 포함되어 있는 문자열을 토큰으로 분리하는 클래스이다.StringTokenizer 클래스는 3가지로 오버라이딩 되어있다.// 1. defalut(공백, 탭, 줄바꿈) 구분자로 문자열을 분리StringTokenizer st = new StringTokenizer(String str) { this(str, " \t\n\r\f", false); }// 2. 구분자(delim)를 기준으로 문자열을 분리StringTokenizer st = new StringTokenizer(String str, String delim) { this(str, delim, false); }// 3. 구분자(delim)를 기준으로 문자열을 분리하고, 구분..

[Java] length, length(), size() 차이점

lengthlength는 배열의 길이를 구할 때 사용된다.최초 배열이 생성될 때 길이가 결정되는 상수 값이다.arrays(int[], double[], String[])public class lenTest { public static void main(String[] args) { String[] arr = {"a", "b", "c"}; // 배열 String[] arrTmp = new String[7]; // 빈 배열 // length : 배열의 길이 arr.length // 3 arrTmp.length // 7 (배열에 저장된 원소 수가 아님) }}length()length()는 문자열의 길이를 구할 때 사용된다.유니코드 코드 ..

[Java] 자바 래퍼 클래스(Wrapper Class)

래퍼 클래스(Wrapper Class)?자바의 자료형은 기본 타입(primitive type)과 참조 타입(reference type)으로 나뉜다.기본 타입 : char, int, float, double, boolean, long, short 등참조 타입 : class, interface 등기본 자료 타입을 객체로 사용하기 위해서 래퍼 클래스(wrapper class)가 존재한다. 래퍼 클래스 종류int와 char만 Integer, Character 이름이 다른 래퍼 클래스이고,나머지는 기본 타입의 첫 글자를 대문자로 바꾼 이름을 가지고 있다.기본 타입래퍼 클래스byteBytecharCharacterintIntegerfloatFloatdoubleDoublebooleanBoolean 박싱, 언박싱박싱 :..

[Java] 자바 스택(Stack) 클래스 메서드 정리

스택(Stack)?스택은 선형자료구조이다.스택은 가장 마지막에 저장된 데이터가 가장 빠져나가는 LIFO(Last In First Out) 구조이다. 스택의 특징후입선출 LIFO(Last In First Out) 구조 : 가장 늦게 들어온 데이터가 먼저 빠져나가는 구조단방향 입출력 구조 : 데이터의 들어오는 방향과 나가는 방향이 같다.​top 위치의 데이터만 접근 가능하기 때문에, 탐색하려면 모든 데이터를 꺼내야 한다. 스택의 선언스택 선언할 때, 데이터 타입은 클래스 또는 래퍼 클래스로 선언할 수 있다.import java.util.Stack;class StackEx { public static void main(String[] args) { Stack stackInt = new Sta..