(0.0)이 나온걸 보면 배열 문제다.
for문을 두번 돌리면 될 것 같은데 하얀 칸을 어떻게 구하면 좋을까?
하얀 칸은 (0.0) (0,2) (0.4) .... 두번째 줄은 (1,1) (1,3) (1,5)... 이다. 이 배열들의 공통점은 두 수를 더하면 짝수라서 2로 나누면 나머지가 0이 된다.
첫번째 줄 - 앞의 숫자가 짝수, 뒤의 숫자가 짝수
두번째 줄 - 앞의 숫자가 홀수, 뒤의 숫자도 홀수
....
인 경우가 흰 칸이다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int result = 0; //최종 값
for(int i = 0; i < 8; i++) {
String chess = br.readLine();
for(int j = 0; j < 8; j++) {
if(i % 2 == 0) { //짝수좌표
if(j % 2 == 0) { //짝수 = 짝수(흰색)
if(chess.charAt(j) == 'F') result++; //result를 추가해준다.
}
}else {
if(j % 2 != 0) { //홀수좌표,홀수좌표 =짝수(흰색)
if(chess.charAt(j) == 'F') result++; //result를 추가해준다.
}
}
}
}
System.out.println(result);
}
}
코드로 나타내면 다음과 같다.
f가 있는걸 어떻게 찾아내나가 문제라서 검색을 했는데 charAt() 를 사용하면 된다는 걸 알게됐다.
charAt() 란?
String으로 받은 문자열 중에서 한 글자만 선택해서 char타입으로 변환해주는 함수이다.
Scanner로 안녕하세요 를 입력받았을 때 charAt(0) 을 프린트하면 안 이 출력되는 것이다.
위에 사용한 코드를 생각해보면 charAt(j) 자리(=흰색 칸)에 F가 있는지 묻고 있다.
F가 있는 경우에는 result를 추가해주는 것이다.
기존 코드블럭이 가독성이 별로인듯 해서 폰트와 테마를 바꾸었는데 글자는 잘 보이지만 주석이 잘 안보이는 문제가 생겼다.
그래서 예전처럼 한줄씩 코드리뷰를 할지 아니면 테마를 포기하고 티스토리 기본 코드블럭을 쓸지 고민이 된다...
'Study > 알고리즘' 카테고리의 다른 글
백준 1075번 - 나누기 JAVA (0) | 2022.07.26 |
---|---|
백준 1037번 - 약수 JAVA (0) | 2022.07.25 |
백준 1009번 - 분산처리 JAVA (0) | 2022.07.23 |
JAVA 백준 알고리즘 단계별로 풀어보기 - 3 (0) | 2022.05.30 |
JAVA 백준 알고리즘 단계별로 풀어보기 - 2 (0) | 2022.05.23 |