알고리즘 정리

코테 개념(nextLine 입력, StringTokenizer 입력)

로미로미로 2024. 11. 9. 21:24

다음과 같이 입력 받았을 때 int 형의 이중배열로 처리하는 방법

5
14054
44250
02032
51204
52212

(scanner를 사용했을 때)

            int N = scanner.nextInt();
            int[][] arr = new int[N][N];

            scanner.nextLine(); // 버퍼 비우기
            for (int i = 0; i < N; i++) {
                String line = scanner.nextLine();
                for (int j = 0; j < N; j++) {
                    arr[i][j] = line.charAt(j) - '0'; // char를 int로 변환
                }

 

 


 

성능 향상을 위해 BufferedReader와 StringTokenizer를 사용해 문자열을 숫자로 변환시키는 방법

10 1238099084
16 4100112380990844

다음과 같이 입력을 받았을 때 

public class Solution {
	static int N;
	static List<String> list;
	
    public static void main(String[] args) throws IOException{
       BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
       
       for(int t = 1; t<=10; t++) {
    	   StringTokenizer st = new StringTokenizer(br.readLine());
    	   N = Integer.parseInt(st.nextToken()); //처음 입력 받은 숫자
    	   list = new LinkedList<>(); //LinkedList 생성
    	   String line = st.nextToken(); //line이라는 문자열을 입력 받고 
    	   for(int i=0; i<line.length(); i++) {
    		   list.add(line.substring(i,i+1)); //line의 i번째 문자를 list에 추가
    	   }
       }
    }
}