Search
Duplicate
😀

01. 알고리즘 기초

태그
Java.util.Scanner
Scanner - 파일, 입력 스트림 등에서 데이터를 읽어 구분자로 토큰화하고, 다양한 타입으로 형변환 하여 리턴해주는 클래스 - 대량의 데이터 처리 시 수행시간이 비효율적 주요 메서드 - nextInt(), nextDouble(), nextLong() ㄴ 데이터 타입 반환 ㄴ 유효 문자열 후 White space 문자를 만나면 처리 - next() ㄴ 문자열 반환 ㄴ 유효 문자열 후 White space 문자를 만나면 처리 - nextLine() ㄴ 문자열 반환 ㄴ 개행(Enter) 문자를 만나면 처리 ㄴ next()와 달리 문자열 안에 띄어쓰기를 할 수 있음 (space, tab 포함 가능) ** 주의할 점 nextLine을 제외한 나머지 next는 white space 전까지 읽고 버퍼에 white space를 남겨둔다. 하지만 다음 next를 호출할 때 Scanner 내부에서 알아서 white space를 처리한다. ⇒ next 이후 nextLine() 메서드를 호출하는 경우 이전에 남아있던 white space를 가진 상태로 버퍼에 읽어들이게 되어, 정확한 값을 구하지 못할 수 있다. (nextInt()로 int 하나 입력받은 후 nextLine()으로 다음 줄을 입력받으려고 할 때 '\n' 가 남아있어서 nextLine이 바로 '\n'을 만나고 종료해버림)
Java.io.BufferedReader
BufferedReader - 필터 스트림 유형 (InputStreamReader 를 가지고 있음) - 줄(line) 단위로 문자열 처리 기능 - 대량의 데이터 처리 시 수행시간이 효율적 StringTokenizer - BufferedReader는 기본적으로 줄 단위로 문자열을 읽어옴 ⇒ StringTokenizer를 활용하여 구분자 기준으로 잘라서 사용할 수 있음 - 기본 구분자 == (" ")
Java.lang.StringBuilder
StringBuilder - 문자열의 조작을 지원하는 클래스 - 자바에서 상수로 취급되는 문자열을 조작 시마다 새로운 문자열이 생성되는 것 방지 - append() ⇒ 문자열 붙이기 - toString() ⇒ 모은 문자열 하나의 문자열로 - setLength() ⇒ 길이만큼 자르기
좋은 알고리즘의 기준
1) 정확성 : 얼마나 정확하게 동작하는가 2) 작업량 : 얼마나 적은 연산으로 원하는 결과를 얻어내는가 (시간복잡도) 3) 메모리 사용량 : 얼마나 적은 메모리를 사용하는가 4) 단순성 : 얼마나 단순한가 5) 최적성 : 더 이상 개선할 여지없이 최적화되었는가
Array
배열 - 동형집합 - 일정한 자료형의 변수들을 하나의 이름으로 열거하여 사용하는 자료구조 - 배열을 통해 하나의 선언을 통해서 둘 이상의 변수 선언 가능 - 단순한 다수 변수 선언 이상으로 다수의 변수로는 하기 힘든 작업을 배열 활용 처리