본문 바로가기

백준 문제 풀이/2차원 배열4

(#2563 Java) 색종이 문제 이해 문제를 이해하는 것은 쉬웠다. 첫 줄에 색종이의 개수가 입력되고, 색종이의 넓이는 100으로 정해져있기 때문에, (색종이의 개수 * 100) - 겹치는 부분 으로 구하면 될 것이라고 생각했다. 그럼 중복된 부분의 넓이를 어떻게 구하면 될까? 2차원 배열을 boolean 타입으로 만들어준 후, 이미 체크가 된 부분이면 중복된 부분이라고 생각하면 된다. 그럼 차근차근 코드를 작성해보자. 문제 해결 우선 첫 번째 줄에 입력되는 색종이 개수를 입력받은 후 변수에 저장해준다. Scanner in = new Scanner(System.in); int paperCount = in.nextInt(); //색종이 개수 그 이후 입력받을 x,y좌표에 해당하는 변수와, 중복되는 부분을 저장해줄 변수를 선언하고 초.. 2024. 2. 24.
(#10798 Java) 세로읽기 문제 이해 총 다섯 줄을 입력받고, 한 줄에는 최대 15개의 문자를 입력받을 수 있다. 이를 세로로 읽어 공백없이 출력해주면 된다. 만약 중간에 빈 문자열이 존재하면, 이는 출력하지 않고 다음 문자를 이어서 출력하면 된다. 문제 해결 우선 5행의 최대 15개의 열을 가진 2차원 배열을 선언해준다. char[][] str = new char[5][15]; 입력 받은 문자열들을 배열에 저장하기 위해 스캐너로 입력받은 문자들을 저자해준다. 이 때 밖의 for문, 즉 행을 뜻하는 반복문은 5번 반복해주면 되고, 안쪽의 for문은 한 줄에 입력받은 문자열의 길이만큼 반복하며 입력받으면 된다. Scanner in = new Scanner(System.in); String input = ""; for (int i =.. 2024. 2. 24.
(#2566 Java) 최댓값 문제 해결 항상 9 x 9 행렬이 주어진다. arr 배열을 만들어주자. int arr[][] = new int[9][9]; 행렬 격자판에서 최댓값을 구하고, 그 최댓값의 행과 열의 위치를 출력해야하므로, 각각 max(최댓값), x(행), y(열)의 변수를 만들어준다. int max = 0; int x = 1; //현재의 위치가 몇 행 int y =1 ; //몇 열인지 저장하는 변수 9행, 9열에 대한 값들을 입력받아 arr 배열에 저장한다. for(int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { arr[i][j] = in.nextInt(); } } 이후 각각의 값들을 max와 비교한 후, 현재의 max값보다 크면 max값을 증가시키고, x,y (현재의 위.. 2024. 2. 23.
(#2738 Java) 행렬 덧셈 문제 해결 아주 간단한 문제이다. 우선 스캐너 객체를 만들어 준 후, 가장 첫 줄에 공백으로 구분되어있는 숫자가 각각 행과 열의 개수를 의미하기 때문에 이를 각각 변수에 저장해준다. public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int m = in.nextInt(); 그 이후 [n][m] 만큼의 배열 2개를 만들어준다. int[][] arr1 = new int[n][m]; int[][] arr2 = new int[n][m]; 각각의 배열을 만들어 준 후 for(int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { arr1[i][j.. 2024. 2. 23.
반응형