목록전체 글 (181)
Lewis's Tech Keep
참고 : www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net - 시뮬레이션 - 구현 중점 - 1. 한쪽으로 이동 시킨다 (moveBlock) - 2. 회전 시킨다 (좌 하 우 상 ) - 3. 5번 진행 시킨다. 더보기 코드 예제 import java.util.*; public class Solution { static int n; static int[][] board1 = new int[22][22]; static int[][] bo..
- 시뮬레이션 문제 - 실패 - 로직은 떠오르는데 구현이 잘 안된다. 블럭을 한 쪽으로 밀어내는 로직이 잘 안 짜여지는 중 더보기 import java.util.*; public class Solution { static int n; static int[][] board = new int[22][22]; static int[][] block = new int[22][22]; private static void move(int dirNum, int[][] block) { for (int i = 0; i < 5; i++) { int dir = dirNum % 4; dirNum /= 4; // System.out.println(dir); for (int j = 0; j < n; j++) { for (int k..
참고 : www.acmicpc.net/problem/18808 - 시뮬레이션 문제 - 어려워서 풀이를 참고함. - 각 기능을 원하는 대로 구현하는 능력을 키워야 함. 더보기 import java.util.*; public class Main { static int n, m, k; static int[][] paper = new int[12][12]; static int r, c; static int[][] note = new int[42][42]; private static void swapRC() { int t = r; r = c; c = t; } private static void rotate() { int[][] tmp = new int[12][12]; for (int i = 0; i < r; i+..
참고 : www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net - 시뮬레이션 문제 - 90도씩 돌아가면서 보이는 곳에 마킹을 해줌 - 마킹 안 되어 있는 곳 (cctv, 벽 제외) 의 최소값을 구해줌. 더보기 import java.util.*; class CCTV { int x; int y; public CCTV(int x, int y) { this.x = x; this.y = y; } } public class Solution { private sta..
참고 : www.acmicpc.net/problem/2294 - dp 문제 - dp[i] : i 에 도달하는데 최소 갯수 (ex. dp[1] : 1에 도달하는데 최소 갯수 1이 있을 시 1로 최소) 더보기 import java.util.Scanner; public class Solution { public static void main(String[] args) { final int MAX_VAL = 100001; Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); int[] coin = new int[n+1]; for(int i=1; i
참고 : www.acmicpc.net/problem/9461 - dp 문제 - dp[i] : i번째 가ㄴㅇ장 긴 변의 길 (4번째 이후로 i-2번째와 i-3번째 가장 긴 변의 길이의 합과 같음 = 회전하므로 같은 규칙을 항상 가지게 된다.) 더보기 import java.util.Scanner; import java.util.Stack; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); long[] dp = new long[102]; dp[0] = 0; dp[1] = 1; dp[2] = 1; dp[3] = 1; dp[4] = 2; for (int i = 5; i
참고 : www.acmicpc.net/problem/4949 - 스택 문제 - 문제의 조건을 해석하는데 푸는 시간보다 더 오래걸렸다. 더보기 import java.util.Scanner; import java.util.Stack; public class Solution { public int solution (int n) { return 0; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(true) { Stack s = new Stack(); String text = sc.nextLine(); String result = "yes"; if(text.equals(".")) { break; } for(..
참고 : www.acmicpc.net/problem/2293 - dp 문제 - 점화식이 그리기 어려워 다른 분 답을 참고함 - dp[i] : i까지 도달하는 경우의 수 (dp[i] = dp[i - coin[j] ]) 더보기 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); int[] coin = new int[n+1]; int[] dp = new int[10001]; dp[0] = 1; // 무조건 1가지 방법은 있음. for(int i=1; i