-
[백준/BOJ] 1100번 : 하얀 칸 (JAVA / 자바)백준 2022. 2. 12. 22:17
안녕하세요~ 코딩하는 코알못 코메인입니다.
https://www.acmicpc.net/problem/1100
1100번: 하얀 칸
체스판은 8×8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램
www.acmicpc.net
- 문제 -
난이도 브론즈 2 문제이다.
자바에서 입력방식은 scanner와 bufferedreader가 있다.
자바를 초반에 접하면 처음에 배우는 입력은 scanner이다. scanner가 bufferedreader보다 편하지만 속도가 느리다.
bufferedreader는 무조건 문자열로 받아오기때문에 정수형이나 실수형 변수에 저장하기 위해서는 입력과 형변환을 해줘야한다.
더 자세한 내용은 아래 글 참고 하면 좋다.
(JAVA / 자바) Scanner 와 Bufferedreader
안녕하세요~ 코딩하는 코알못 코메인입니다. 이번엔 백준 문제 풀면서 계속 언급될 scanner와 bufferedreader에 대한 간단한 정리를 해볼거다. 자바에서 입력은 scanner와 bufferedreader가 있다. 우선 각자
comain.tistory.com
풀이 방법
하얀칸의 패턴을 구하고, 그 위에 말이 오는 경우의 수를 구하면 된다.
하얀칸은 첫째줄은 홀수, 둘째줄은 짝수, 셋째줄을 홀수, 다음줄은 짝수, 이렇게 홀짝 줄엔 홀수 짝수 줄엔 짝수가 하얀칸이 된다. 그렇다면 if문으로 해당 조건일 때, 말이 있으면 수를 저장할 변수에 +1을 해준다.
필자는 코드를 줄과 칸과 말의 여부를 if문 3개를 이용해 풀었지만, if문 하나에 넣어도 된다.
필자의 코드로 짧게 설명해주겠다.
if(i % 2 == 0) {
if(j % 2 == 0) {
if(S.charAt(j) == 'F') result++;
}필자의 if문 코드다. 이것을
if(i % 2 == 0 && j % 2 == 0 && S.charAt(j) == 'F') result++;
이렇게 바꿔도 된다.
코드를 보자.
-풀이-
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; 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 S = br.readLine(); for(int j = 0; j < 8; j++) { //짝수 짝수 일때 말이 오면 result +1 if(i % 2 == 0) { if(j % 2 == 0) { if(S.charAt(j) == 'F') result++; } //홀수 홀수 일때 말이 오면 result +1 }else { if(j % 2 != 0) { if(S.charAt(j) == 'F') result++; } } } } System.out.println(result); } }
-결과-
아직 코딩 공부가 부족한 필자라 설명과 풀이 방법이 많이 미흡할 수 있다. 코딩 고수분들은 보시고 문제점이 있다면 댓글로 말해주시면 감사한 마음으로 참고 수정 하겠습니다.
'백준' 카테고리의 다른 글
[백준/BOJ] 1110번 : 더하기 사이클 (JAVA / 자바) (0) 2022.02.12 [백준/BOJ] 1032번 : 명령 프롬프트 (JAVA / 자바) (0) 2022.02.12 [백준/BOJ] 1076번 : 저항 (JAVA / 자바) (0) 2022.02.12 [백준/BOJ] 1075번 : 나누기 (JAVA / 자바) (0) 2022.02.11 [백준/BOJ] 10833번 : 사과 (JAVA / 자바) (0) 2022.02.10