java
[백준] 2577번 : 숫자의 개수 - JAVA [자바]
[백준] 2577번 : 숫자의 개수 - JAVA [자바]
2020.02.28https://www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다. www.acmicpc.net 문제 문제 자체는 그리 어렵지 않은 것 같다. 문자열 분리 방법만 알고있다면 매우 쉬울거라 본다. 3가지 방법을 제시한다. 먼저 기초입력(Scanner)과 함께 가장 기본적인 알고리즘으로 풀어볼 것이다. 그리고 나머지 두 가지 방법은 BufferedReader 를 이용하여 알고리즘을 달리하여 풀어보고자 한다. 풀이 - 방법 1 import java.util.Scanner; public class Main { public static void main(..
[백준] 2562번 : 최댓값 - JAVA [자바]
[백준] 2562번 : 최댓값 - JAVA [자바]
2020.02.27https://www.acmicpc.net/problem/2562 2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다. www.acmicpc.net 문제 매우 간단한 문제다! 3가지 풀이방법을 제시한다. 먼저 배열을 이용하여 풀이를 할 것이다. 이 때 Scanner 와 BufferedReader, 두 가지 방법을 이용하여 풀어 볼 것이고, 나머지 하나는 배열을 이용하지 않고 풀어보려 한다. 풀이 - 방법 1 import java.util.Scanner;..
[백준] 10818번 : 최소, 최대 - JAVA [자바]
[백준] 10818번 : 최소, 최대 - JAVA [자바]
2020.02.27https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 문제 매우 간단한 문제다! ※ 주의할 점 N 개의 정수를 공백으로 구분해서 주어진다. 3가지 풀이방법을 제시한다. 기본적으로 배열 문제인 만큼 배열을 이용한 방법을 통해 입력방법을 달리하여 Scanner 와 BufferedReader 을 통해 입력받아본다. 그리고 배열을 이용하지 않는 방법을 통해 풀어보고자 한다. 즉, 아래와 같다. 배열 + Scanner 배열..
[백준] 1110번 : 더하기 사이클 - JAVA [자바]
[백준] 1110번 : 더하기 사이클 - JAVA [자바]
2020.02.26https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = www.acmicpc.net 문제 그렇게 어렵지는 않은 문제다. 알고리즘 자체가 매우 단순한 유형이라 조금만 살펴보면 금방 풀 수 있다. 2가지 풀이방법을 제시..
JAVA [자바] - 입력 뜯어보기 [Scanner, InputStream, BufferedReader]
JAVA [자바] - 입력 뜯어보기 [Scanner, InputStream, BufferedReader]
2020.02.24이 글을 지금 이 시점에 써야 할까 고민을 많이 했다. 사실 자바를 그냥 다룰 줄만 아는 것에 목표를 둔다면 이 글이 무의미할 수도 있다. 그러나 자바에 대해 조금이라도 관심이 있고 더 배우고 싶은 분들도 있겠다 싶어 작성해보자 마음먹고 쓰기로 했다. (사실 고민하다간 똥 된단 소리를 워낙 많이 들어와서..) 그래서 입력에 대한 구조를 살펴보면서 자바에 대한 지식을 하나 더 추가해보자. 그리고 이 글을 보기 전에 여러분들이 기본적으로 알고 가야할 것이 있다. 바로 JAVA 의 인코딩에 대한 것이다. Java는 String 을 처리할 때 내부(메모리 상에서)에서는 UTF-16 BE 인코딩으로 문자열을 저장하고, 송수신에서는 직렬화가 필요한 경우 변형된 UTF-8 (modified UTF-8) 을 사용하며 ..
[백준] 10951번 : A+B - 4 - JAVA [자바]
[백준] 10951번 : A+B - 4 - JAVA [자바]
2020.02.24https://www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 간단한 문제지만 의외로 종료시점을 몰라 틀리는 경우들이 많은 것 같다. ※ 주의할 점 두 정수는 공백으로 나뉘어 구분된다. 입력의 종료는 더이상 읽을 수 있는 데이터 (EOF) 가 없을 때 종료한다. 3가지 방법을 사용하여 풀이한다. 먼저 입력 방식의 차이를 두어 Scanner 로 입력받아 연산하는 방법과 BufferedReader 로 입력받아 연산하는 방법, 두 가지 방법으로 풀어볼 것이고, 나머지 하나는 문자열 분리 방법에 차이를 두어 풀어 볼 것이다. 즉 다음 3가지로 풀어볼 것이다. Scann..
[백준] 10952번 : A+B - 5 -JAVA [자바]
[백준] 10952번 : A+B - 5 -JAVA [자바]
2020.02.23https://www.acmicpc.net/problem/1001 1001번: A-B 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 매우 간단한 문제다! ※ 주의할 점 두 정수는 공백으로 구분되어 주어진다. 테스트를 종료하는 기점은 0 두 개를 입력받은 시점이다. 3가지 풀이 방법을 제시한다 먼저 입력 방법을 달리하여 풀이하는 2가지, 마지막으로 시간을 더욱 단축시킬 수 있는 방법을 알아보고자 한다. 아래 이전에 풀이방법을 참고해보아도 좋을 것 같다. https://st-lab.tistory.com/33?category=830885 [백준] 11021번 : A+B - 7 - JAVA [자바] https://www.acmicpc.net/pro..
[백준] 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 ..