JAVA - 백준 [BAEK JOON]
[백준] 10871번 : X보다 작은 수 - JAVA [자바]
[백준] 10871번 : X보다 작은 수 - JAVA [자바]
2020.02.20https://www.acmicpc.net/problem/10871 10871번: X보다 작은 수 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. www.acmicpc.net 문제 엄청 쉬운 문제다. if 문과 for문의 조합 문제인 느낌이다. 3가지 풀이방법을 제시한다. 기본적으로 배열을 이용하여 풀이해보고, 배열을 이용하지 않고 쓰는 방법을 써보고자 한다. 그리고 마지막으로 성능을 최대화 한 풀이방법을 제시하고자 한다. 풀이 - 방법 1 배열을 이용한 방법이다. 아마 대부분은 이 방법을 가장 쉽게 이해할 수 있을 것이다. import java.uti..
[백준] 2439번 : 별 찍기 - 2 - JAVA [자바]
[백준] 2439번 : 별 찍기 - 2 - JAVA [자바]
2020.02.19https://www.acmicpc.net/problem/2439 2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 문제 이전 포스팅과 문제가 유사하다. 아마 반복문 연습 때 대표적인 별찍기 중 하나로 한 번씩은 해봤으리라 본다. (그래도 포스팅은 계속될 것이니..) 2가지 입력방법을 이용하여 풀이한다. Scanner 로 입력받아 연산하는 방법과 BufferedReader 로 입력받아 연산하는 방법, 두 가지 방법을 통해 풀이해보고자 한다. 또한 BufferedReader 에서 출력방법을 바꿔보며 어느 방법이 시간을 더 단축 시킬 수 있는지 한 번 보고..
[백준] 2438번 : 별찍기 - 1 - JAVA [자바]
[백준] 2438번 : 별찍기 - 1 - JAVA [자바]
2020.02.19https://www.acmicpc.net/problem/2438 2438번: 별 찍기 - 1 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 www.acmicpc.net 문제 아마 대부분 언어를 처음 배울 때 반복문에서 가장 많이 하는 실습이 별찍기 일 것이다. 그정도로 반복문을 어떻게 짜느냐가 중요하다고 할 수 있을 것이다. 2가지 입력방법을 이용하여 풀이한다. Scanner 로 입력받아 연산하는 방법과 BufferedReader 로 입력받아 연산하는 방법, 두 가지 방법을 통해 풀이해보고자 한다. 또한 BufferedReader 에서 출력방법을 바꿔보며 어느 방법이 시간을 더 단축 시킬 수 있는지 한 번 보고자 한다. 알고리즘 먼저 N 이라는 숫자가 주어진다. 1 ..
[백준] 11022번 : A+B - 8 - JAVA [자바]
[백준] 11022번 : A+B - 8 - JAVA [자바]
2020.02.19https://www.acmicpc.net/problem/11022 11022번: A+B - 8 각 테스트 케이스마다 "Case #x: A + B = C" 형식으로 출력한다. x는 테스트 케이스 번호이고 1부터 시작하며, C는 A+B이다. www.acmicpc.net 문제 매우 간단한 문제다! ※ 주의할 점 첫 줄에 테스트 케이스 개수가 입력되고 다음 입력부터는 공백을 기준으로 두 개의 정수가 입력된다. "Case #n: " 문자열 뒤에 A + B 와 그 연산 결과값이 출력된다. 2가지 풀이방법을 제시한다. Scanner 로 입력받아 연산하는 방법과 BufferedReader 로 입력받아 연산하는 방법, 두 가지 방법을 통해 풀이해보고자 한다. 또한 출력방법도 변경해보면서 성능을 최대화하여 시간을 단축해..
[백준] 11021번 : A+B - 7 - JAVA [자바]
[백준] 11021번 : A+B - 7 - JAVA [자바]
2020.02.19https://www.acmicpc.net/problem/11021 11021번: A+B - 7 각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다. www.acmicpc.net 문제 매우 간단한 문제다! ※ 주의할 점 첫 줄에 테스트 케이스 개수가 입력되고 다음 입력부터는 공백을 기준으로 두 개의 정수가 입력된다. "Case #n: " 문자열 뒤에 A+B 의 연산 결과값이 출력된다. 2가지 풀이방법을 제시한다. Scanner 로 입력받아 연산하는 방법과 BufferedReader 로 입력받아 연산하는 방법, 두 가지 방법을 통해 풀이해보고자 한다. 또한 출력방법도 변경해보면서 성능을 최대화하여 시간을 단축해보고자 한다. 추가로 필자가 제출..
[백준] 2742번 : 기찍 N - JAVA [자바]
[백준] 2742번 : 기찍 N - JAVA [자바]
2020.02.18https://www.acmicpc.net/problem/2742 2742번: 기찍 N 자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 바로 이전 문제인 찍기 N 을 거꾸로 출력시키는 문제다.. 기존 코드를 1분만 손 보면 바로 통과 가능한 문제인듯 하다. 2가지 방법을 제시한다. Scanner 로 입력받아 연산하는 방법과 BufferedReader 로 입력받아 연산하는 방법, 두 가지 방법을 통해 풀이해본다. 특히 BufferedReader 을 써서 시간단축한 것에 만족하지 않고 출력방법에 변화를 주어 더욱 시간 단축을 해보기로 한다. 또한 이미 직전 문제에서 설명은 다 했으니 매우 간단하게 할 것이다. [ 참고 문제 ] 더보기..
[백준] 2741번 : N 찍기 - JAVA [자바]
[백준] 2741번 : N 찍기 - JAVA [자바]
2020.02.18https://www.acmicpc.net/problem/2741 2741번: N 찍기 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 매우매우 쉬운 문제다. 특히나 자바를 이용한다면 시간초과 날 일도 없으니.. 2가지 방법을 제시한다. Scanner 로 입력받아 연산하는 방법과 BufferedReader 로 입력받아 연산하는 방법, 두 가지 방법을 통해 풀이해본다. 특히 BufferedReader 을 써서 시간단축한 것에 만족하지 않고 출력방법에 변화를 주어 더욱 시간 단축을 해보기로 한다. 풀이 - 방법 1 import java.util.Scanner; public class Main { public static void ma..
[백준] 15552번 : 빠른 A+B - JAVA [자바]
[백준] 15552번 : 빠른 A+B - JAVA [자바]
2020.02.17https://www.acmicpc.net/problem/15552 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net 문제 ※ 주의할 점 시간제한은 1.5초다. 즉 1500ms 이내여야 한다. (위 이미지 하단 시간 제한 안내에 기재되어있음) Scanner 사용하면 시간초과된다. 스캐너는 너무 느리다. 이유는 아래에서 설명하겠다. System.out.printn 도 사용하면 시간초과된다. 2가지 풀이 방법을 제시한다. 입력은 한 가지 방법으로 (BufferedReader) 사용하며 출력을 다르게 사용할 것이다. 이전 포스팅에서 출..
[백준] 8393번 : 합 - JAVA [자바]
[백준] 8393번 : 합 - JAVA [자바]
2020.02.15https://www.acmicpc.net/problem/8393 8393번: 합 문제 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n (1 ≤ n ≤ 10,000)이 주어진다. 출력 1부터 n까지 합을 출력한다. 예제 입력 1 복사 3 예제 출력 1 복사 6... www.acmicpc.net 문제 매우 간단한 문제다! 사실 저번 포스팅 문제보다 더 쉬워서 당황했다... 사실 뭐 알고리즘이라 할 것도 없고... 다만 1부터 주어진 수 까지 더하는 것이니 for문 조건을 잘 써줄 것 정도? 2가지 입력방법을 이용하여 풀이한다. 가장 대중적인 방법인 Scanner 로 입력받아 연산하는 방법과 BufferedReader 로 입력받아 연산하는 방법, 두 가지 방법을 통해..
[백준] 10950번 : A+B - 3 - JAVA [자바]
[백준] 10950번 : A+B - 3 - JAVA [자바]
2020.02.15https://www.acmicpc.net/problem/10950 10950번: A+B - 3 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 매우 간단한 문제다! ※ 주의할 점 첫 줄에는 테스트 케이스 개 수가 주어진다. 한 케이스에는 두 정수가 공백 한 칸으로 구분되어 주어진다. 2가지 방법을 제시한다. 기본적으로 사람들이 가장 많이 알고 있는 Scanner 방식과 필자가 제출한 BufferedReader + StringTokenizer + StringBuilder 을 이용한 방식을 보여주고자 한다. 풀이 - 방법 1 import java.util.Scanner; public class Main { public static void ma..