꾸물꾸물 졔의 개발공부
02/03 - 표준입출력 , 재귀 본문
자바에서의 표준입출력은 단방향이다 !!! 그렇기 때문에 , 입력 + 출력 2개가 기본적으로 필요함
입력 스트림과 함께 필터를 여러개 입혀서 쓸 수 있는데, 그렇게 되면 마지막 필터를 거친 결과가 자바에게 전달된다
<Scanner>
- 파일, 입력스트림 ,문자열 등에서 데이터를 읽어서 토큰화 ( 의미있는 것으로 만듦 ) -> 다양한 타입으로 형번환
- 데이터 형번환의 편리 ( 입력은 byte 단위로 읽어들이지만, Scanner을 통해 바로 문자열로 입력받을 수 있음 )
- 하지만, 대량 데이터 처리시 수행시간이 느려질 수 있다 .. 그래서 나온것이 ....
<BufferedReader>
BufferedReader ( new InputStreamReader (System.in))
// system.in으로 받은 inputstream 형태를 reader의 형태로 바꿔주기 위해, 'InputStreamReader' 필터가 필요함
- read.Line() : 라인단위로 읽어들임
<StringBuilder>
자바에서 출력할 문자열들을 한번에 모아두었다가, 프로그램 종료시 한번에 출력할 수 있음
- append() : 문자열 더하기 (-> 이를통해 StringBuilder 자기자신을 return 하므로, '.' 을 가지고 계속 이을 수 있음 )
- toString : 차곡차곡 더한 문자열을 문자열의 형태로 출력
- setLength ( ) : 길이조절 / 불필요한 문자를 삭제하기 위해, (sb.length-n) 또는 (5) 등 명시적으로 길이 조절 가능
[ 재귀 ]
재귀 : 기본부분 + 유도파트
- 기본 부분 : 재귀호출이 끝나는 부분, ( base case ) 꼭필요함 !! 이거 없으면 무한 재귀
- 유도 파트 : 반복 단위 코드
ex) int factorial ( int n ) {
if ( n ==1 ) return 1 ; // basis part ( 기본부분 ) , 재귀를 더 이상 호출하지 않고 끝나는 부분
else return n * factorial( n-1 ) ; // 재귀호출 부분
}
재귀는 flat 한 시야로 문제를 봐야함 !!! 당장 내가 풀어야할 결정적인 문제가 무엇인지 파악하고, 나머지 일은 그다음 재귀에게 맡기도록 !!
변화가 있는 값은 매개변수로 , 고정값은 함수 안에 구현 !!
'SSAFY' 카테고리의 다른 글
02/08(2) - 리스트 (순차리스트 ,연결리스트) (0) | 2022.02.08 |
---|---|
02/08 - 스택 , 큐 (0) | 2022.02.08 |
01/26 - 자료구조 ( list, set, map ) (0) | 2022.01.29 |
01/25(1) - 예외처리 (0) | 2022.01.29 |
01/24(2) - Generics < 타입 명시 > (0) | 2022.01.25 |