본문 바로가기

알고리즘

console에서 값 읽을 때

반응형

백준 알고리즘 사이트에서 알고리즘 문제를 꾸준히 풀어보고 있습니다. 

저는 주로 Java 언어를 사용하여 진행하고 있는데, 

그 과정에서 컴파일에러, 시간초과 등 많은 에러를 보았습니다.

 

그 중 콘솔에서 입력 값을 받을 때 문제가 발생하는 경우가 있어 이 글을 작성합니다.

 

Scanner 대신 BufferedReader를 !

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

 

String 을 int로 바꿀때 ! 

1. charAt()

br.readLine 을 하면 String 으로 그 값을 받아오는데, int 로 변경할 떄 

Integer.parseInt를 주로 사용하였습니다.

그러나 최근 charAt을 응용하여 변경하는 법을 알게되어 공유드립니다.

String s = br.readLine();

  for(int i=0;i<row;i++) {
  	String s = br.readLine();
  	for(int j=0;j<column;j++) {
  		maze[i][j] = s.charAt(j)-'0';
  	}
  }

 

2. StringTokenizer

charAt 으로 변환하면 두자리이상의 정수는 변환이 어렵습니다.

이런 경우에는 StringTokenizer를 이용하는 것이 좋습니다.

사용 방법은 아래와 같습니다.

 

		StringTokenizer st;
		
		for(int i=0;i<size;i++) {
			st = new StringTokenizer(br.readLine());
			for(int j=0;j<i+1;j++) {
				triangleNums[i][j]=Integer.parseInt(st.nextToken());
			}
		}

 

감사합니다.

반응형

'알고리즘' 카테고리의 다른 글

최소신장트리  (0) 2020.12.06
String, StringBuilder, StringBuffer  (0) 2020.11.23
Hash Table  (0) 2020.11.15
스택과 큐  (0) 2020.09.06
이차원 배열 정렬  (0) 2020.08.23