자바 2566번

소만이·2024년 1월 8일

자바 백준문제

목록 보기
4/4

문제는 푸는데 어렵지 않았다!
다만 여러 문제를 풀면서 느낀 점은 내가 쓸데없는 for문을 많이 쓰는 것 같다..
이번에 푼 문제를 보면서 크게 와닿아서 기록해놓으려고 한다!

기존 코드

import java.awt.*;
import java.io.*;
import java.util.*;
import java.util.List;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        StringTokenizer st;
        int[][] arrange = new int[9][9];

        for (int i = 0; i < 9; i++) {
                st = new StringTokenizer(br.readLine(), " ");
            for (int j = 0; j < 9; j++) {
                arrange[i][j] = Integer.parseInt(st.nextToken());
            }
        }

        int minValue = Integer.MIN_VALUE;

        for (int i = 0; i < 9; i++) {
            for (int j = 0; j < 9; j++) {
                if (arrange[i][j] > minValue) {
                    minValue = arrange[i][j];
                }
            }
        }
        
        
        ********여기에서 쓸데없는 for문을 작성하였다!!*********
        FINAL : for (int i = 0; i < 9; i++) {
            for (int j = 0; j < 9; j++) {
                if (arrange[i][j] == minValue) {
                    System.out.println(minValue);
                    System.out.print((i+1) + " " + (j+1));
                    break FINAL;
                }
            }
        }

    }
}

수정코드

import java.awt.*;
import java.io.*;
import java.util.*;
import java.util.List;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        StringTokenizer st;
        int[][] arrange = new int[9][9];

        for (int i = 0; i < 9; i++) {
                st = new StringTokenizer(br.readLine(), " ");
            for (int j = 0; j < 9; j++) {
                arrange[i][j] = Integer.parseInt(st.nextToken());
            }
        }

        int minValue = Integer.MIN_VALUE;
        int x = 0;
        int y = 0;
        for (int i = 0; i < 9; i++) {
            for (int j = 0; j < 9; j++) {
                if (arrange[i][j] > minValue) {
                    minValue = arrange[i][j];
                    x = i+1;      //변수에 값을 저장하는 방법으로 쓸데없는 for문을 쓰지 않아도 된다!!
                    y = j+1;
                }
            }
        }

    }
}

쓸데없이 배열을 돌면서 값을 출력해내는 과정을 줄여보도록 하자!!

0개의 댓글