상세 컨텐츠

본문 제목

10/20

JAVA문법

by 화2팅 2023. 10. 21. 21:49

본문

1. [3][3] 배열에서 'abc'를 입력했을때 'a' 'b' 'c'따로 저장되게하는법

 

 

for(int i = 0; i<3; i++){
    String temp_str = sc.readLine();
    for(int j=0; j<3; j++){
        input[i][j] = temp_str.charAt(j);

    }
}

 

기본적인거지만 은근 바로 생각안나고 헷갈렸어서 기록해두었다.

 

2. (N< X <=M) 범위의 랜덤한 수 뽑기 

int n = 5;
int m = 134;
int random_m = (int)(Math.random()*(m-n+1) + 5);

 

3. 짝수행 짝수열 홀수행 홀수열  찾을때 일일히 하는걸 손쉽게 하는법

 

이것만보면 나중에 다시 볼때 내가 봐도 무슨 말인지 모르걸같아서 다시 코드예시를 들면서 설명하자면

 

예시로 8X8열에서 홀수행의 홀수열, 홀수해의 짝수열, 짝수행의 홀수열, 짝수행의 짝수열등의 조건을 따질떄 

 

다음과 같이 for문을 통해 일일히 하나하나 계산했었다. 

 

public static int find(char[][] MN, int count){
    char first = MN[0][0];


    for (int i=0; i< MN.length; i+=2){
        for(int j=0; j<MN[i].length; j+=2){
            if(MN[i][j] != first){
                count++;
            }
        }
        for(int j=1; j<MN[i].length; j+=2){
            if(MN[i][j] == first){
                count++;
            }
        }

    }
    for (int i=1; i< MN.length; i+=2){
        for(int j=0; j<MN[i].length; j+=2){
            if(MN[i][j] == first){
                count++;
            }
        }
        for(int j=1; j<MN[i].length; j+=2){
            if(MN[i][j] != first){
                count++;
            }
        }
    }


    return Math.min(count,64-count);

}

코드를 다 짜고보니 정답을 찾아보는과정에서 바로 써먹을수 있을만한 더 쉬운 방법을 찾아봐서 기록해놨다

 

boolean first = MN[0][0];

for (int i = 0; i < MN.length; i++) {
    for (int j = 0; j < MN[i].length; j++) {

        // 올바른 색이 아닐경우 count 1 증가
        if (MN[i][j] != first) {
            count++;
        }

        /*
         * 다음 칸은 색이 바뀌므로
         * true라면 false로, false 라면 true 로
         * 값을 변경한다.
         */
        first = (!first);
    }

    first = !first;
}

이런식으로 boolean형식의 타입으로 바꿔서 반복문 돌때마다  !first로 바꿔주면 쉽게 접근하면서 카운트 할 수 있다.

'JAVA문법' 카테고리의 다른 글

11/9 Builder 패턴  (1) 2023.11.09
10/19  (1) 2023.10.19
10/18  (0) 2023.10.18
10/17 - JAVA 문법 (배열 복사, 배열 <->리스트 전환, 정렬 + 기타등등)  (0) 2023.10.18

관련글 더보기