[백준 1100] 하얀 칸 JAVA

2024. 11. 27. 23:52·코딩테스트/백준

 

 

 

 

 

 

 


 

 

 

 

 

 

처음 작성한 코드 - 1차원 배열

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		
		String[] s = new String[8];
		int cnt = 0;
		
        for (int i = 0; i < 8; i++) {
			s[i] = sc.next();
		}
        
        for (int i = 0; i < 8; i++) {
        	if(i % 2 == 0) {	//짝수 줄, 0 2 4 6, 흰 검 흰 ... 검
        		if(s[i].contains("F")) {	//줄에 F 있는 경우에만 센다.
        			for (int j = 0; j < s[0].length(); j+=2) {
        				if(s[i].charAt(j) == 'F') {
        					cnt++;
        				}
					}
        		}
        	}
        	else {	//홀수 줄, 1 3 5 7, 검 흰 검 ... 흰
        		if(s[i].contains("F")) {	//줄에 F 있는 경우에만 센다.
        			for (int j = 1; j < s[0].length(); j+=2) {
        				if(s[i].charAt(j) == 'F') {
        					cnt++;
        				}
					}
        		}
        	}

        }
        System.out.println(cnt);
    }
}

 

 

코드가 너무 중복되는 것 같아 조금 바꿔본다.

 

 

 

 

 

 

 

 

 

처음 작성한 코드 간결화

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] s = new String[8];
        int cnt = 0;

        for (int i = 0; i < 8; i++) {
            s[i] = sc.next();
        }

        // 8x8 체스판을 돌며 'F'를 카운트
        for (int i = 0; i < 8; i++) {
            int startIdx = (i % 2 == 0) ? 0 : 1;  // 짝수줄은 0부터, 홀수줄은 1부터 시작
            for (int j = startIdx; j < s[i].length(); j += 2) {
                if (s[i].charAt(j) == 'F') {
                    cnt++;
                }
            }
        }
        System.out.println(cnt);
    }
}

 

 

성능에는 별 차이 없지만, 훨씬 짧아졌다.

 

 

 

 

 

 

 

 

 

 

 

 

2차원 배열 사용

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        char[][] board = new char[8][8];  // 8x8 체스판
        int cnt = 0;

        for (int i = 0; i < 8; i++) {
            board[i] = sc.next().toCharArray();  // 한 줄씩 입력을 받아서 char 배열로 저장
        }

        // 2차원 배열을 돌면서 하얀 칸 찾기
        for (int i = 0; i < 8; i++) {
            for (int j = (i % 2 == 0) ? 0 : 1; j < 8; j += 2) {  // 짝수 행은 0부터, 홀수 행은 1부터
                if (board[i][j] == 'F') {
                    cnt++;
                }
            }
        }
        System.out.println(cnt);
    }
}

 

 

체스판이 8X8이기 때문에 2차원 배열을 사용해도 될 것 같아 적용해본 방식

 

 

 

 

 

 

채점 결과

 

 

 

반응형

'코딩테스트 > 백준' 카테고리의 다른 글

[백준 1008] A/B JAVA - BigDecimal 사용  (0) 2024.11.18
[백준 11866] 요세푸스 문제 0 JAVA - 원형 Queue 사용  (0) 2024.11.12
[백준 10988] 팰린드롬인지 확인하기  (0) 2024.11.11
[백준 1157] 단어 공부 JAVA - LinkedHashSet, HashMap 사용  (0) 2024.11.09
[백준 1316] 그룹 단어 체커 JAVA - 데크(Deque) 사용  (0) 2024.11.08
'코딩테스트/백준' 카테고리의 다른 글
  • [백준 1008] A/B JAVA - BigDecimal 사용
  • [백준 11866] 요세푸스 문제 0 JAVA - 원형 Queue 사용
  • [백준 10988] 팰린드롬인지 확인하기
  • [백준 1157] 단어 공부 JAVA - LinkedHashSet, HashMap 사용
오은이
오은이
  • 오은이
    오은이 하우스
    오은이
  • 전체
    오늘
    어제
    • 분류 전체보기 (85)
      • 일기 (2)
      • Python (1)
      • Java (4)
      • CS (2)
      • 코딩테스트 (26)
        • 백준 (25)
        • 프로그래머스 (1)
      • 웹 개발 (18)
        • Spring (7)
        • JavaScript (3)
        • WebSquare (5)
        • React (3)
      • DB (5)
        • MySQL (4)
        • Oracle (1)
      • 서버&인프라 (18)
        • Server (5)
        • Cloud (12)
        • Linux (1)
      • 자격증 (9)
        • 정보처리기사 (2)
        • AICE (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    톰캣
    AI
    react
    오블완
    Associate
    리액트
    websquare
    머신러닝
    docker배포
    Java
    AICE
    tomcat
    SpringBoot
    알고리즘
    dockerspring
    docker
    Apache
    클라우드
    EC2
    클라우드 배포
    백준자바
    AICE Associate
    자바
    Spring
    웹스퀘어
    db
    cloud DB
    MySQL
    티스토리챌린지
    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
오은이
[백준 1100] 하얀 칸 JAVA
상단으로

티스토리툴바