본문 바로가기

Algorithm/Algorithm for Beginner

3. Array와 List 비교 및 사용 Array와 List는 가장 기본적인 자료구조입니다. Array는 일반적으로 배열이라고 부르는 자료구조입니다. 선언 및 사용에 있어 대괄호를 사용하며 제일 처음 저장되는 값은 0번째 자리에 저장되게 됩니다. 또한 처음 크기와 타입을 선언하게 되면 새로운 객체를 생성하기 전까지는 형태가 고정된다는 특징을 갖고 있습니다. 만일 배열크기를 넘어서게 되면 Exception이 나게 되며 처음 선언된 타입이 아닌 다른 타입의 자료형을 배열에 넣으려고 한다면 Type mismatch로 컴파일 자체가 안되게 됩니다. 1234567891011121314151617import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTok..
2. BufferedWriter와 System.out.println() 의 비교와 사용법 잘 구현된 알고리즘은 속도면에서 그리고 메모리면에서 최적화되어 있어야 합니다. 만일 문제는 잘 풀어놓고도 많은 입력과 출력을 감당하지 못해서 실행 속도가 느려진다면 복장이 터질겁니다. 그렇다면 어떤 문제들을 풀 때 입출력에 유의해야 할까요. 가장 손쉽게 파악할 수 있는 방법은 문제에서 주어진 입력, 출력 예시를 보는 것입니다. 문제에서 가능한 케이스가 무엇인지 모두 출력하게 한다던가, 여러 케이스의 답을 한번에 출력하기를 바란다면 말은 하지 않았지만 빠른 입출력을 사용하는 것을 은연중에 의도한 것이라고 할 수 있습니다. 어쩌면 의도하는게 아니라 빠른 입출력의 사용을 지극히 당연하게 생각하고 있을 수도 있겠습니다. 프로그래밍을 처음 시작할 때 일반적으로 우리는 출력을 먼저 하게 됩니다. Java 개발을 처..
1. Scanner와 BufferedReader로 입력받기 보통 처음 Java를 배울 때 입력방식은 Scanner를 사용하게 됩니다. Scanner는 사용하기에 아주 편리한 클래스 입니다. Scanner는 공란과 줄바꿈 모두 입력값의 경계로 인식하기 때문에 데이터를 입력받기에 용이하고, 입력받은 즉시 자료형이 확정되기 때문에 문제를 풀어나가기에도 용이합니다. 그에 반하여 BufferedReader 클래스는 일반적으로 라인단위로 입력을 받게 되며, 라인 바이 라인으로 입력값의 경계를 인식하기 때문에 한줄에 공란을 경계로 여러 값이 입력된 경우라면 파싱이 필수적입니다. 또한 입력받은 값은 모두 String 타입이기 때문에 하나하나 타입변환을 해줘야 한다는 불편함이 존재합니다. 더군다나 BufferedReader는 Scanner처럼 자체적으로 Exception에 대한..
0. 알고리즘 초보자를 위한 알고리즘 처음 포스팅을 작성하는데 있어 전달드리고 싶은게 있어 작성한 글이니 굳이 읽으실 필요는 없습니다! 1. 이 게시물은 누군가를 가르쳐야 겠다는 목표의식이나 대단히 훌륭한 결과물을 내놓겠다는 생각으로 작성하는 것이 아니기 때문에 보시는 분들도 불-편한 마음이 아닌 편-안한 마음으로 스르륵 읽어주시면 감사드리겠습니다. 2. 제가 자료를 정리하게 된 이유는 크게 두 가지입니다. 첫번째로는 Java된 알고리즘 학습 소스가 C나 C++에 비하여 부족한 편입니다. Java는 알고리즘에 특화된 언어가 아닙니다. C나 C++와 달리 JVM 위에서 실행되는 Java 프로그램은 속도면에서 상대적으로 열위에 놓여있을 수 밖에 없고 이는 알고리즘 문제풀이에 있어 치명적인 단점이 됩니다. 알고리즘 분야에서 C와 C++가 훨씬 폭..