6. B - Minesweeper 코드 import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringTokenizer st; st = new StringTokenizer(br.readLine()); int h = Integer.parseInt(st.nextToken()); int w..
1. B - Trained? 코드 import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringTokenizer st; int n = Integer.parseInt(br.readLine()); int[] arr = new int[n + 1]; boolean[] visited = ne..
문제 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 풀이 StringTokenizer 클래스를 사용하는 것이 가장 편리합니다. 알아서 공백 문자열을 기준으로 잘라서 유효한 String만을 골라 추출하기 때문입니다. PS판에서 Java를 통해 문제를 풀겠다면 반드시 사용하게 되는 클래스입니다. StringTokenizer 클래스의 countTokens 메소드를 이용해 단어의 개수를 쉽게 알 수 있습니다. * 주의점 String의 split 메소드는 라인의 앞뒤에 공백 문자가 있거나 순수 공백 문자열 또는..
문제 1008번: A/B 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 a, b를 정수가 아닌 실수로 받아 a/b를 출력하면 됩니다. 자바의 double은 소수점을 16자리까지 표현이 가능하므로 자연스럽게 오차가 1e-9 이하가 됩니다. 코드 import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedW..
문제 1001번: A-B 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 정수 a, b를 받고 a - b를 출력하면 됩니다. 코드 import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringTokenizer st; st..
문제 1000번: A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 정수 a, b를 받고 a + b를 출력하면 됩니다. Scanner라는 편한 클래스가 있지만 나중을 위해 BufferedReader, BufferedWriter 클래스를 사용하는 것이 더 나은 선택입니다. Scanner는 선언하는 것만으로도 무겁고 입출력 속도가 너무 느립니다. 문제를 풀다 보면 로직 자체에 아무런 문제가 없는데, 시간 초과가 나오는 것을 종종 볼 수 있습니다. 어떤 문제는 단지 Scanner를 선언하는 것만으로도 시간 초과가 납니다. Scanner 때문에 시간 초과가 날 수 있다는 것을 염두에 두고 있으면 그때그때 제대로 대처할 수도 있겠지만 보통은 종종..
10473번: 인간 대포 입력은 한 개의 길찾기 문제를 표현한다. 첫 줄에는 두 개의 실수가 입력되며 각각은 당신이 현재 위치한 X, Y좌표이다. 두 번째 줄에는 목적지의 X, Y좌표가 실수로 입력된다. 이어지는 줄에는 대 www.acmicpc.net 시작점에서 도착점까지 얼마나 빨리 갈 수 있는가 묻는 문제이다. 가장 빠른 경로를 응용하는 문제이고 음수 간선이 없으니 다익스트라를 이용할 수 있다는 것을 알 수 있다. 정점의 개수도 기껏해야 100개이므로 나올 수 있는 간선이 기껏해야 100^2개이다. 편리한 계산을 위해 한 정점에서 다른 정점으로 갈 때 걸리는 시간을 미리 구해두자. 가는 방법은 두 가지이다. 걸어가거나 먼저 대포를 탄 뒤 걸어가는 것이다. 시작점과 도착점에서 출발할 땐 반드시 걸어가야..
1106번: 호텔 첫째 줄에 C와 형택이가 홍보할 수 있는 도시의 개수 N이 주어진다. C는 1,000보다 작거나 같은 자연수이고, N은 20보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 각 도시에서 홍보할 때 www.acmicpc.net 풀이 처음 보는 유형의 dp. dp[i]의 정의를 사람을 i명 이상 구할 때 드는 최소비용이라 정의하자. 그러면 어떤 홍보 수단이 3원에 5명을 구할 수 있다고 가정할 때 dp[i]의 최솟값은 dp[i - 5] + 3, dp[i - 4] + 3, ... , dp[i - 1] + 3 중 하나가 된다. 모든 홍보 수단에 대해 최솟값을 찾아 업데이트 하면 답을 구할 수 있다. 코드 #include using namespace std; typedef long lon..
- Total
- Today
- Yesterday
- boj 9345
- 백준 12713
- boj 1280
- 백준 2243
- boj 14868
- 제로베이스 백엔드 스쿨
- boj 12713
- 백준 16562
- 백준 14868
- 터보소트
- boj 2336
- boj 1106
- 사탕상자
- boj 10775
- 디지털 비디오 디스크
- 백준 1280
- Ugly Numbers
- boj 10473
- boj 16562
- 백준 10775
- 제로베이스 스쿨
- boj 2243
- 인간 대포
- 백준 1106
- 백준 10473
- 부트 캠프
- boj 3006
- 백준 2336
- 백준 3006
- 백준 9345
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |