CASE1

  • 붙어있는 경우

  • N 첫줄을 parse해준다.
  • N을 이용해서 루프를 돈다.
  • i는 한줄씩->input=br.readLine();
  • j는 한글자씩-> arr[i][j] = input.charAt(j) - '0';
    • br.readLine()은 한줄을 String으로 받기 때문에 숫자로 바꿔주기 위해서 -'0'을 해준다.
		BufferedReader br= new BufferedReader (new InputStreamReader(System.in));
		String input= br.readLine();
		N = Integer.parseInt(input);
		house = new int [N][N];
		visited = new boolean [N][N];
		//Arrays.fill(visited, false);
		for(int i = 0 ; i < N; i++)
		{
			input = br.readLine();
			for(int j =0 ; j < N ; j++)
			{
				int tempNum = input.charAt(j);
				house[i][j] = input.charAt(j) -'0'; 
			}
		}

 

CASE2

  • 떨어져 있는 경우

  • StringTokenizer 를 사용한다. 
  • br.readLine(=String) 은 같다. 하지만 한 줄에서 띄어쓰기전까지만 짜른다.
  • ex) 30 50
    • StringTokenizer st =new StringTokeizer(input); //input은 한 줄 
    • int first = Interger.parseInt(st.nextToken()); // 한줄에서 띄어쓰기 전까지 first -> 30
    • int second = Integer.parseInt(st.nextToken()); // 50
		BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
		int T = Integer.parseInt(br.readLine());
		for(int tc =0; tc<T; tc++)
		{
			inin();
			L=Integer.parseInt(br.readLine()); //L*L 
			visit =new boolean[L][L];
			for (boolean row[]: visit) {
				Arrays.fill(row,  false);
			} //초기화시킴
			String input = br.readLine();  // 0,0
			StringTokenizer st= new StringTokenizer(input);

			int sx =Integer.parseInt(st.nextToken()); 
			int sy =Integer.parseInt(st.nextToken()); 
			input = br.readLine();  // 0,0
			st= new StringTokenizer(input);
			int ex =Integer.parseInt(st.nextToken());
			int ey =Integer.parseInt(st.nextToken());
         }

+ Recent posts