Loading...

[백준] 17837번 새로운 게임2 (java, 시뮬레이션, 구현)

www.acmicpc.net/problem/17837 17837번: 새로운 게임 2 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하 www.acmicpc.net 말이 4개 이상 겹치면 탈출 chips라는 이차원 배열에 arraylist가 들어가게 해서 해당 위치에 칩 리스트를 만들어줬다. package algo0419; import java.util.ArrayList; import java.util.Scanner; class Horse{ int y,x,dir; public Horse(int y, int x, int dir) { super(); this.y = y; ..

[swexpert] 8382. 방향전환 (구현, java)

상하 와 좌우를 번갈아 이동해야된다. visited 배열을 3차원으로 사용했다. 마지막은 인덱스는 가로, 세로 중 어디로 이동했냐를 가르킨다. 테스트케이스 45개만 통과되는 경우 시작점 = 도착점으로 주어져서 답이 0인 것을 처리해주지 않아서 그렇다. 예외로 0을 출력하도록 구현하면 된다. import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; class Pos{ int x,y,dir; public Pos(int x,int y,int dir) { super(); this.x = x; this.y = y; this.dir=dir; } } public class Solution { static int t; static in..

[백준] 2504번 괄호의 값 (java, 구현, stack)

www.acmicpc.net/problem/2504 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 www.acmicpc.net 구현인데 어려웠다 괄호가 코딩테스트에 자주 나오는 이유 ~ 중첩된 것의 계산을 어떻게 해줄지 떠올리느냐 아니냐가 중요했다 나의 경우 괄호의 깊이를 계산해서 후위계산식으로 만들어서 계산해줄려고 했는데 너무 길고 복잡해서 다른 사람 풀이를 참고 했다. --- 중첩되어서 안쪽에 있는 괄호쌍은 앞에서 곱해온 수에 현재 괄호쌍의 값을 곱한다. 여는 괄호에서 곱해주면 된다. ( 열 때마다 중첩되서 깊어지므로) 만약 현재..

[백준] 5567번 결혼식 (bfs, 구현 )

www.acmicpc.net/problem/5567 5567번: 결혼식 2와 3은 상근이의 친구이다. 또, 3과 4는 친구이기 때문에, 4는 상근이의 친구의 친구이다. 5와 6은 친구도 아니고, 친구의 친구도 아니다. 따라서 2,3,4 3명의 친구를 결혼식에 초대한다. www.acmicpc.net 처음에 네트워크를 구하는 줄알고 dfs인 줄 알았으나 depth (친구의 친구)가 2인 곳까지만 탐색하므로 bfs로 풀었다. import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main { static int n,m; static ArrayList[]..

[백준] 1138번 한 줄로 서기 (java, 구현)

www.acmicpc.net/problem/1138 1138번: 한 줄로 서기 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 www.acmicpc.net 자신의 번호가 들어갈 수 있는 배열을 하나 만든다(0 초기화) 그리디 탐색으로 보고있는 자리가 비워져있다면 나보다 큰 사람이 들어갈 곳으로 판단해서 cnt를 1감소시킨다. cnt가 0이라 나보다 큰 애는 없어도 자리가 비워져있지 않다면 나보다 작은 친구가 들어간 곳이다. 다음 공간을 본다. cnt도 0이고 현재 공간이 0이면 내가 들어갈 자리이다. import java.util.Scanner; publi..

[백준] 17276번 배열 돌리기 (java, 구현)

www.acmicpc.net/problem/17276 17276번: 배열 돌리기 각 테스트 케이스에 대해 회전 연산을 마친 후 배열의 상태를 출력한다. n줄에 걸쳐 각 줄에 n개의 정수를 공백으로 구분하여 출력한다. www.acmicpc.net 대각선 45도, -45도로 배열을 돌리는 문제. 주 대각선들 외에는 그대로 냅둔다. import java.util.Scanner; public class Main { static int n,t,d; public static void main(String[] args) { Scanner sc=new Scanner(System.in); t=sc.nextInt(); for (int tc = 1; tc

[백준] 20055번 컨베이어 벨트 위의 로봇 (java, 구현)

www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net import java.util.ArrayList; import java.util.Scanner; public class Main { static int n,k; static int[] belt; static ArrayList list=new ArrayList(); static boolean[] pos; public static void main(String[] args) { Scanner ..

[백준] 17144번 미세먼지 안녕! (java, 구현)

www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net import java.util.ArrayList; import java.util.Scanner; class Pos{ int y, x; public Pos(int y, int x) { super(); this.y = y; this.x = x; } } public class Main { static int r,c,t; static int[][] map; static int[][] add; static int[] ..

[swexpert] 3752. 가능한 시험점수 (java, dfs, 완전탐색, 구현)

백준의 양팔 저울과 문제가 같은 문제인거 같다. 부분합으로 구할 수 있지만 시간초과가 나서 시간을 줄이기 위해서 이전까지 나온 결과값에 현재 점수를 더해주면서 set과 arr 리스트를 갱신해줬다. arr배열을 만든 이유는 현재 점수를 틀렸다고 가정했을 때 이전 점수와 같은 점수가 될 텐데 또 더해주지 않으면서 다음 문제 차례에 계산할 때 쓸 이전 점수들의 모음이 필요하기 때문이다. import java.util.ArrayList; import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class Solution { static int n,t; static int[] score; static Set s; static ..

[swexpert] 5644. 무선 충전 (구현, java)

사용자를 2명으로 제한해줘서 그나마 다행인 문제 충전소까지 거리가 닿냐에 따라서 사용할 수 있거나 없거나 하는데 사용하는 충전소를 중복 조합으로 만들어준다. 중복조합이라고 해서 재귀를 돌릴 필요는 없고 충전소 개수만큼 for문을 돌려주면 된다 다른 충전소이면 총 충전량을 더해주고 같은 충전소이면 충전소가 제공하는 양만큼 (충전한 곳이 하나라도 있을 경우 둘 다 거리가 안닿으면 0) 더해준다. import java.util.ArrayList; import java.util.Scanner; class Pos{ int y,x; public Pos(int y, int x) { super(); this.y = y; this.x = x; } } class Charge{ int y,x,c,p; public Charg..