anott
기록
anott
  • 분류 전체보기
    • 오라클
    • SQL
    • 알고리즘
      • 백준저지
      • 프로그래머스
      • SWEA
    • 개발 관련
    • 프론트엔드
      • TypeScript, Next.js
      • React 공식문서 읽기
hELLO · Designed By 정상우.
anott

기록

알고리즘/백준저지

백준저지 2563번 색종이

2021. 8. 10. 22:57

출처: https://www.acmicpc.net/problem/2563

 

2563번: 색종이

가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록

www.acmicpc.net

 

제출 날짜: 2021년 8월 10일 화요일

 

 

 

생각

아래 두 질문글에 대한 답변을 보고 풀이법을 생각해낼 수 있었다.

https://www.acmicpc.net/board/view/29006

https://www.acmicpc.net/board/view/32209

그런데 문제를 풀다가 Arrays.fill()이 이차원 배열에는 적용이 안 된다는 것을 알게 되었다. for문을 사용해야 하나 싶었는데 아래 글에서 훨씬 나은 해결방법을 찾을 수 있었다.

https://stackoverflow.com/questions/7118178/arrays-fill-with-multidimensional-array-in-java

 

 

 

// 출처: 백준저지 2563번 색종이 https://www.acmicpc.net/problem/2563

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class BOJ2563 {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(st.nextToken()); // 색종이의 수 (100 이하)
        int[][] paper = new int[101][101]; // 0부터 100까지
        Arrays.stream(paper).forEach(a -> Arrays.fill(a, 0)); // 이차원 배열 paper을 0으로 채우기
        for (int i = 0; i < N; i++) {
            st = new StringTokenizer(br.readLine());
            int x = Integer.parseInt(st.nextToken()); // x좌표 (색종이의 왼쪽 변과 도화지의 왼쪽 변 사이의 거리)
            int y = Integer.parseInt(st.nextToken()); // y좌표 (색종이의 아래쪽 변과 도화지의 아래쪽 변 사이의 거리)
            for (int j = x; j < x + 10; j++) {
                for (int k = y; k < y + 10; k++) {
                    paper[j][k] = 1; // 해당 위치를 1로 바꾸기
                }
            }
        }
        int total = 0; // 답
        for (int i = 0; i < 101; i++) { // 1로 채워진 면적을 모두 더하기
            for (int j = 0; j < 101; j++) {
                total = total + paper[i][j];
            }
        }
        System.out.println(total); // 답
    }
}

 

 

 

저작자표시 비영리

'알고리즘 > 백준저지' 카테고리의 다른 글

백준저지 2559번 수열  (0) 2021.08.15
백준저지 2605번 줄 세우기  (0) 2021.08.15
백준저지 3040번 백설 공주와 일곱 난쟁이  (0) 2021.08.12
백준저지 1783번 병든 나이트  (0) 2021.08.09
백준저지 1764번 듣보잡  (0) 2021.08.07
    '알고리즘/백준저지' 카테고리의 다른 글
    • 백준저지 2605번 줄 세우기
    • 백준저지 3040번 백설 공주와 일곱 난쟁이
    • 백준저지 1783번 병든 나이트
    • 백준저지 1764번 듣보잡
    anott
    anott

    티스토리툴바