본문 바로가기

분류 전체보기

(268)
[백준 java] 5430 - AC 실제로 문자열을 뒤집으면 시간초과가 난다. 따라서 boolean형 변수 Reverse를 선언하고 만약 R이 들어오면 reverse != reverse 로 변경해주자 밑 코드는 for문마다 결과값을 ArrayList에 저장해야해서 마지막에 배열을 뒤집어서 저장했다 import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class B5430 { static ArrayList intArr = new ArrayList(); static ArrayList resArr = new ArrayList(); static boolean reverse; static char[] charArr; public static..
[백준 java] 3190-뱀 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 사과는 : 1, 그냥길은 :0 * 주의할점 * 1. 뱀이 사과를 먹으면 Board의 1(사과) 을 0으로 바꿔줘야한다. 2. X초가 끝난 뒤에 (뱀이 움직이고 난 후) 방향을 움직여아한다 3. for문을 통해 자기자신과 만났는지 확인하고 break로 전체 while문을 빠져나와야 한다 뱀의 길이와 위치를 알기위해 snake 큐를 만들었다 q에 이동할 곳을 넣어주고 만약 사과를 먹었다면 Board의 사과만 0으로 없애주고 만약 사과를 먹지 않았다면 큐를 삭제하여 제일 이..
[백준 java] 9012-괄호 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net (괄호는 1 )괄호는 -1로 바꾸고 순서대로 더한다(int sum). 만약 sum이 음수가 된다면 바로 실패처리 후 NO 최종으로 더한 값이 0이 나온다면 YES를 출력한다 import java.util.Scanner; public class B9012 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt();..
[백준 java] 3197-백조의 호수 3197번: 백조의 호수 입력의 첫째 줄에는 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1500. 다음 R개의 줄에는 각각 길이 C의 문자열이 하나씩 주어진다. '.'은 물 공간, 'X'는 빙판 공간, 'L'은 백조가 있는 공간으로 나타낸다. www.acmicpc.net 1. 백조를 이동킨다 (BFS) 1-2. 두 백조가 만나면 while true 2. 빙하를 녹인다 우선 필드 크기와 필드의 모양을 입력받는다 입력을 마치면 for문으로 두마리 백조의 위치를 swan에 저장하고 만약 물이라면 meltQ에 추가시킨다 (얼음을 녹이기 위해) ( * 주의할점은 백조도 물로 취급하여 meltQ에 넣어줘야한다. (이것때문에 55%에서 계속 실패했다...) move에서는 첫번째 백조만 움직이는 방법으로 두번째 백..
[백준 java] 2669-직사각형 네개의 합집합의 면적 구하기 받은 숫자로 사각형을 그려 구현했다 import java.util.Scanner; public class B2669 { static int[][] data = new int[4][4]; static int[][] Board = new int[101][101]; public static void main(String[] args) { Scanner sc = new Scanner(System.in); for(int i=0; i
[백준 java] 2668-숫자고르기 예제 입력 7 3 1 1 5 5 4 6 예제 출력 3 1 3 5 index의 목록과 board[index] 목록의 정렬값이 같아야 하는 문제 1 2 3 4 2 3 4 1 예를들어 index인 파란색 숫자와 값인 빨간색 숫자의 목록(정렬)은 [1 2 3 4] 와 [1 2 3 4] 같으므로 예제 4 4 3 2 1 은 맞는 값이다 위 조건을 만족시키려면 그래프가 이어져야 하고 다시 첫번째 index와 만나야한다 1>2 2>3 3>4 4>1 그래서 for문으로 1~N까지 index를 전송해주고 bfs에 따로 int first 로 저장해둔다 그리고 큐에 first를 넣어주고 while문으로 넘어간다 while문에서는 아직 방문하지 않은 index에 해당하는 값을 큐에 저장한다 만약 index에 해당하는 값이 아까..
[백준 java] 12100-2048(Easy) 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 1. 4방향 움직임이 가능하다 int[][] D = {{-1,0},{1,0},{0,-1},{0,1}}; //상하좌우 2. 두 블록 충돌하면 하나로 합쳐진다 새로운 좌표(이동하려는 좌표) nr cr 값이 r c 와 같다면 nr cr 좌표 값 * 2를 저장하고 r c 좌표값은 0으로 지정한다 3. 이미 이동한 블럭은 합쳐지지않는다 boolean으로 합쳐진 부분은 true처리 boolean이 false인곳만 합치게한다 4. 똑같은 수가 3개..
[백준 java] 2644-촌수계산 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net 이전문제 2606 바이러스와 다른점은 해당 문제의 예제처럼 9 7 3 7 1 2 1 3 2 7 2 8 2 9 4 5 4 6 7 과 3의 촌수를 구하는 문제이므로 7-2 2-1 1-3 으로 3촌의 관계가 된다 아래 코드에서는 큐에 넣을때 카운터를 +1 해줘서 3이 들어갈때도 count+1이 된다 따라서 최종값 res에 -1을 해주면 촌수관계가 된다 import java.util.LinkedList; import java.util.Queue; i..