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);
}
}
기본적인거지만 은근 바로 생각안나고 헷갈렸어서 기록해두었다.
int n = 5;
int m = 134;
int random_m = (int)(Math.random()*(m-n+1) + 5);
이것만보면 나중에 다시 볼때 내가 봐도 무슨 말인지 모르걸같아서 다시 코드예시를 들면서 설명하자면
예시로 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로 바꿔주면 쉽게 접근하면서 카운트 할 수 있다.
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 |