꾸물꾸물 졔의 개발공부

02/03 - 표준입출력 , 재귀 본문

SSAFY

02/03 - 표준입출력 , 재귀

체제 2022. 2. 4. 08:50

자바에서의 표준입출력은 단방향이다 !!! 그렇기 때문에 , 입력 + 출력 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