알고리즘/문제풀이 (78) 썸네일형 리스트형 [1476] 날짜 계산 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int E = sc.nextInt(); int S = sc.nextInt(); int M = sc.nextInt(); int e = 0; int s = 0; int m = 0; int cnt = 0; while (true) { e++; s++; m++; if(e>15) e = 1; if(s>28) s = 1; if(m>19) m = 1; cnt ++; if(E==e && S==s && M==m) { System.out.println(cnt); break; } } } } 오랜만에 하반기를.. [14426] 이모티콘 이모티콘 S개를 만들 때까지 3가지 연산을 계속 하는 것이기 때문에 BFS를 이용해서 풀 수 있는 문제입니다. 저는 처음에 Pair 클래스를 선언해서 화면에 있는 이모티콘 개수, 시간만 생각하고 visited 배열도 1차원으로 선언하여 화면에 있는 이모티콘의 개수만 생각해서 문제를 풀었습니다. 그래서 삭제연산을 하면 시간이 1초 증가하고, 복사 붙여넣기를 하면 시간이 2초 증가하는 방식으로 풀었는데 그렇게 풀게 되면 각 경우에 클립보드에 이모티콘 몇개가 저장되어 있는지 다르기 때문에 틀린 방법이었습니다. 그래서 Pair 클래스도 이모티콘의 개수, 클립보드에 저장되어 있는 이모티콘, 시간 3가지로 나누고, visited배열도 1차원 배열이 아닌 2차원 배열로 visited[이모티콘의개수][클립보드에저장되어.. [17142] 연구소 2 주어진 바이러스의 개수 중에서 M 개를 골라 바이러스를 퍼뜨려야 하기 때문에, 순열의 개념이 필요하고, 모든 연구소에 바이러스가 있게 하는 최소시간을 구해야 하기 때문에 BFS를 이용해서 푸는 문제입니다. 제가 이 문제를 풀 때 고민했던 첫번 째는 x와 y 좌표를 가진 Pair 클래스를 만들어 ArrayList 나 Queue에 넣어 사용하는데, 어떻게 순열로 뽑을까 하는 것이었습니다. 그래서 저는 2의 좌표가 들어있는 ArrayList 말고 따로 ArrayList를 선언해서 2의 좌표가 들어있는 ArrayList 만큼 0, 0의 좌표를 넣어 주었습니다. 그래서 ArrayList의 set 메소드로 2의 좌표를 순열로 뽑았습니다. 그리고 뽑힌 순열에서 BFS를 실시해서 연구소에 바이러스가 퍼지는 시간 min.. [9935] 문자열 폭발 import java.util.Scanner; // 9935 문자열 폭발 public class Main { static char[] stack; static String first, second; static int top=0; public static void main(String[] args) { Scanner sc = new Scanner(System.in); first = sc.next(); second = sc.next(); char[] f = first.toCharArray(); char[] s = second.toCharArray(); char last = s[s.length - 1]; stack = new char[f.length]; Outter: for (int i = 0; i < f... [5430] AC import java.util.*; // 5430 AC public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = sc.nextInt(); Outter: for (int i = 0; i < num; i++) { Deque deque = new ArrayDeque(); String s = sc.next(); int b = sc.nextInt(); String arr = sc.next(); int dir = 0; arr = arr.substring(1, arr.length() - 1); StringTokenizer st = new StringTokenizer(arr, ",").. [1182] 부분수열의 합 import java.util.Scanner; // 1182 부분수열의 합 public class Main { static int dep; static int N, S, sum, cnt; static int [] arr, ans; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); S = sc.nextInt(); arr = new int[N]; ans = new int[N]; for(int i=0; i [2206] 벽 부수고 이동하기 import java.util.Scanner; import java.util.Queue; import java.util.LinkedList; // 2206 벽 부수고 이동하기 public class Main { static int N, M, cnt; static int[][] map; static boolean visited[][][]; static Queue queue; static int[][] temp = { { 1, 0 }, { 0, 1 }, { -1, 0 }, { 0, -1 } }; static boolean flag; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); M =.. [6603] 로또 import java.util.Scanner; // 6603 로또 public class Main { static int [] arr; static int N; static int [] ans; public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); while(true) { N = sc.nextInt(); if(N == 0) break; arr = new int[N]; ans = new int[N]; for(int i=0; i 이전 1 ··· 3 4 5 6 7 8 9 10 다음