본문 바로가기

반응형

IT

(235)
InputStreamReader 와 OutputStreamReader 알고리즘을 풀며 Buffer를 사용하다보니, InputStream / OutputStream 을 쓰는 형태가 대부분이다. 이 둘에 대해서 조금 더 자세히 알아보자. 설명 InputStream / OutputStream 은 자바에서 가장 기본이 되는 입 / 출력 스트림이다. Stream 이란 출발지와 도착지를 이어주는 다리이다. System.in 은 InputStream 타입의 필드이다. System 클래스의 in 이라는 필드는 InputStream 의 정적 필드이다. InputStream 은 두가지 큰 특징이 있다. 입력받은 데이터는 int 형으로 저장되며 이는 10진수의 UTF-16 값으로 저장된다. 1 byte 만 읽는다. 이러한 문제를 해결하기 위해 확장된 것이 InputStreamReader 이다..
BufferedReader 와 Bufferedwriter Scanner와 마찬가지로 사용자에게 입출력을 받을 때에 사용하는 클래스이며 대용량 데이터를 처리해야할 때에 사용한다. 설명 BufferedReader / BufferedWriter 란 버퍼를 이용하는 대표적인 I/O (Input / Output) 클래스이다 BufferedReader : Scanner와 유사함 BufferedWriter : System.out.println(); 과 유사함 입력된 데이터를 바로 전달하지 않고 버퍼에 저장해두었다가 전달하는 방법 버퍼를 거쳐서 간접적으로 출력장치로 전달되어서 시스템의 데이터처리 효율성을 높여주며 InputStreamReader / OutputStreamWriter 를 같이 사용하여 버퍼링을 하게되면 입출력 스트림으로부터 미리 버퍼에 데이터를 갖다 놓기 때문..
Scanner Scanner란 사용자에게 입력 장치로 입력을 받아 그 값을 변수에 저장하는 역할을 하는 클래스이며 입력을 받을 때 자바에서 가장 많이 쓰인다. 설명 JDK 1.5부터 추가되었다. java.util 패키지에 포함되어 있으며 사용하기 위해서는 import java.util.Scaaner 를 통해 외부로부터 Scanner 클래스를 호출해서 사용한다. 읽은 바이트를 문자, 정수, 실수, 불린, 문자열 등 다양한 타입으로 변환하여 리턴하는 클래스이다. Scanner의 입력 메소드들은 주로 공백과 개행(줄 바꿈)을 기준으로 입력값을 인식한다. 사용 형태 import java.util.Scanner; public class Main { public static void main(String[] args) { Sca..
[1110]더하기 사이클 수행일자 : 2021.07.17 https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 문제 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부..
백준 알고리즘 기초오류 해결방안 처음 백준 알고리즘을 사용했을 때, 코드상으로 문제가 없는데 계속 에러가 떠서 곤란했던 적이 있었다. 이와 관련하여 찾았던 해결방안들을 정리해보았다. 이클립스에서 개인적으로 패키지 및 클래스를 만들어 알고리즘을 작성한 후에 해당 내용을 복붙해서 백준 알고리즘에 제출하는 경우가 많다. 이 과정에서 백준 알고리즘을 정상적으로 사용하기 위해 필요한 몇 가지의 사항이 있다. 1. 컴파일 에러 이클립스에서 코드가 정상적으로 작동하고, 결과값도 잘 나오며 문법적인 오류도 없는데 계속해서 컴파일 에러가 나는 경우가 있다. 복붙을 할 떄에 [ package ] 가 같이 들어갔기 때문이다. 클래스 파일 가장 위에 자동으로 작성되는 [ package AAA; ] 코드는 제거해줘야 정상적으로 작동한다. 2. 런타임 에러 위..
[10951]A+B - 4 수행일자 : 2021.07.11 https://www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 각 테스트 케이스마다 A+B를 출력한다. 입출력 예제 while을 사용하는 문제이다. 10952번과 달리 종료시점에 대한 정의가 되어있지 않기 때문에 더 이상 읽을 수 없는 데이터인 EOF(End of File)을 이용하여 종료시..
[10952]A + B -5 수행 일자 : 2021.07.10 https://www.acmicpc.net/problem/10952 10952번: A+B - 5 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 입력의 마지막에는 0 두 개가 들어온다. 출력 각 테스트 케이스마다 A+B를 출력한다. 입출력 예제 while을 사용하는 문제이다. while문은 while(조건문) { } 의 형태로 사용한다. 해당 문제에는 종료 조건이 설정되어 있..
[10871]X 보다 작은 수 수행 일자 : 2021.07.10 https://www.acmicpc.net/problem/10871 10871번: X보다 작은 수 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. www.acmicpc.net 문제 정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오 입력 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. 출력 X보다 작..