본문 바로가기

Problem Solving

(22)
[ACMICPC] 1916 . 최소 비용 구하기 1916번 최소 비용 구하기 문제 보러가기 🅰 설계 1. 최단거리 알고리즘 A에서 B로 가는 가장 간단한 형식의 최단거리 문제인 것을 알 수 있다. 간단하게 어떤 알고리즘을 써야 하는지 생각해 봤다. 일단 조건을 확인한다. 도시의 개수 N(1
[ACMICPC] 15684 . 사다리 조작 15684번 문제 보러가기 🅰 설계 1. 입력 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 static int N, M, H, ans; static boolean[][] line; //-------------- st = new StringTokenizer(br.readLine()); N = Integer.parseInt(st.nextToken()); M = Integer.parseInt(st.nextToken()); H = Integer.parseInt(st.nextToken()); line = new boolean[H+1][N+1]; for(int i=0;i<M;i++){ st = new StringTokenizer(br.readLine()); int a, b;..
[ACMICPC] 1644 . 소수의 연속합 1918번 소수의 연속합 문제 보러가기 🅰 설계 소수 판별 123456789101112// build primes arraystatic void init(){ Arrays.fill(isPrime,true); for(long i=2;i
[ACMICPC] 14891 . 톱니바퀴 14891번 톱니바퀴 문제 보러가기 🅰 설계 크게 신경쓸만한 부분이 없는 주어진대로 구현하면 되는 문제다. 고려할만한 부분이라고 하면 톱니바퀴가 회전할 때, 현재 상태에 맞춰서 회전되며 다음 상태와 현재 상태가 뒤섞여서 계산될 수도 있는 부분이 있다. 이 부분은 간단하게 현재 상태 배열과 다음 상태 배열을 분리하여 회전시키고, 회전이 끝난 후에는 현재 상태 배열을 다음 상태 배열로 바꿔주면 된다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071import java.util.*;import java.io.*; publ..
[ACMICPC] 1018 . 체스판 다시 칠하기 1018번 체스판 다시 칠하기 문제 보러가기 🅰 설계 입력받은 보드를 8*8로 잘라서, WBWB... 형식이나 BWBW...형식의 체스판으로 만드는데 최소의 비용이 드는 지점을 찾으면 된다. 이는 단순히 8*8짜리 WBWB... , BWBW... 형식과 비교할 수도 있지만, W를 0로, B를 1으로 생각하면 BWBW...와 맞는 체스판은 ((i+j)%2)^(c == 'W' ? 1 : 0)으로, WBWB...와 맞는 체스판은 ((i+j)%2)^(c == 'B' ? 1 : 0)으로 계산할 수 있다. 이를 보드의 모든 8*8 격자에 체크하면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 3..
[ACMICPC] 1918 . 후위 표기식 1918번 후위표기식 문제 보러가기 🅰 설계 Stack을 배울 때 나오는 단골 문제다. 우선순위 0. '(' 1. '+', '-' 2. '*', '/' 3. ')' 현재 연산자의 우선순위가 Stack에 있는 연산자의 우선순위보다 높거나 같으면 Stack에서 모두 꺼낸다. 현재 연산자의 우선순위가 Stack에 있는 연산자의 우선순위보다 낮으면 Stack에 넣는다. 마지막으로 남은 연산자를 붙여주면 끝 여기서 Stack에 넣는다는 것은, Stack에 있는 연산자보다 현재 연산자의 우선순위가 낮기 때문에 나중에 계산하겠다는 의미이다. 반대로 Stack에서 꺼낸다는 것은, Stack에 있는 연산자보다 현재 연산자의 우선순위가 높기 때문에 지금 계산하겠다는 의미이다. 1 2 3 4 5 6 7 8 9 10 11 1..