목록구현 (59)
Dev.baelanche
배열 단계에 있는 문제였는데 배열을 굳이 사용할 필요가 없다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int max = 0; int maxIdx = 0; for(int i=1; i
국어문제에 가깝다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); if(n % 4 == 0 && n % 100 != 0) System.out.println(1); else if(n % 400 == 0) System.out.println(1); else System.out.println(0); } }
갑자기 단계별 문제에 추가되서 풀어봤다. \, ', " 등의 문자를 처리하는 문제이다. 사실 고양이가 귀여운 문제다. public class Main { public static void main(String[] args) { System.out.println("\\ /\\"); System.out.println(" ) ( \')"); System.out.println("( / )"); System.out.println(" \\(__)|"); } }
https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 시계방향 순서대로 주어진다. N극은 0, S극은 1로 나타나있다. 다섯째 줄에는 회전 횟수 K(1 ≤ K ≤ 100)가 주어진다. 다음 K개 줄에는 회전시킨 방법이 순서대로 주어진다. 각 방법은 두 개의 정수로 이루어져 있고, 첫 번째 정수는 회전시킨 톱니바퀴 www.acmicpc.net 문제가 너무 길어 링크로 대체하겠다. 연속으로 시뮬레이션 문제를 풀었다. 삼성 역량 평가 문제들은 알고리즘 지식 보다 문제해결능력에 ..
구현만 잘하면되는 시뮬레이션 문제이다. N*N의 나무 배열에 여러개의 나무가 있을 수 있으므로 기본 배열이 아닌 리스트로 구현했다. 하지만 어린 나무부터 양분을 먹는 과정에서 리스트의 정렬이 시간초과를 야기하여 우선순위큐로 바꾸었다. 이러고도 30% 정도에서 시간초과가 발생되었고 죽은 나무를 보관하는 큐(원래 리스트였다)는 일반 배열로 바꾸어 정수값을 더해주는 형태로 바꿨다. 이 과정에서 pop, push 하는 횟수가 줄어들어 문제를 해결할 수 있었다ㅜㅜ 문제는 어렵지 않으므로 정확한 구현 + 시간절약 에 중점을 두어 풀어야 한다. public class Main { public static void main(String[] args) throws Exception { BufferedReader br =..
문제에서 요구한대로 해결해야하는 시뮬레이션 문제이다. 낚시 -> 상어의 이동 을 반복하며 잡은 상어의 크기를 누적해서 더한다. 두마리 이상의 상어가 같은 위치에 머물게 되면 가장 큰 상어만 남게되는 부분만 유의하면 된다. public class Main { static int R; static int C; static int m; static Shark a[][]; static ArrayList list = new ArrayList(); static int sum = 0; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in));..
단순 구현 문제다. 반복문 두번으로 가로줄, 세로줄을 긋고 두번째 줄을 예외처리 하는 방법으로 풀었다. 두번째 줄은 공백이 없으니 이 부분 주의해야한다..! public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int width = 1 + (n-1)*4; int height = 1; for(int i=0; i
수의 범위가 너무 커서 문자열로 받아야 한다. 구현은 자기 입맛대로 하면 될듯 하다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); char a[] = sc.next().toCharArray(); char b[] = sc.next().toCharArray(); String sum = ""; int al = a.length - 1; int bl = b.length - 1; int upper = 0; while(al >= 0 || bl >= 0) { int s = 0; if(al >= 0 && bl >= 0) s = (a[al] - '0') + (b[bl] - '0') + uppe..