BOJ 10836 여왕벌

1 minute read

  1. 변수

    int[] line; //왼쪽부터 위쪽까지 1차원 배열로 생각
    int[] growList; // 0 1 2씩 증가하는 정보를 담는 배열
    
  2. 로직

    • 가장자리를 나타낸 1차원 배열에 커야되는 만큼 증가를 시킨다.

    • 윗열을 기준으로 그 아래 열들은 맨 위 열의 값과 같도록 출력해준다.

  3. 코드

package com.ssafy;

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

public class BOJ_10836_여왕벌_210113 {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());

		BOJ_10836_여왕벌_210113 Algo = new BOJ_10836_여왕벌_210113();

		int M = Integer.parseInt(st.nextToken());
		int N = Integer.parseInt(st.nextToken());

		int[] line = new int[M*2 -1];
		
		int[] growList = new int[3];
		while (N-- > 0)
	    {
	        st = new StringTokenizer(br.readLine());
	        growList[0] = Integer.parseInt(st.nextToken());
	        growList[1] = Integer.parseInt(st.nextToken());
	        growList[2] = Integer.parseInt(st.nextToken());
	 
	        for (int i = growList[0]; i < growList[0] + growList[1]; i++)
	        {
	        	line[i]++;
	        }

	        for (int i = growList[0] + growList[1]; i < 2 * M - 1; i++)
	        {
	        	line[i] += 2;
	        }
	    }
	 
	    
		Algo.print(line, M);

	}

	private void print(int[] line, int M) {
		for (int i = 0; i < M; i++){
	        for (int j = 0; j < M; j++){
	            if (j == 0)
	            	System.out.print(line[M - i - 1]+1 + " ");
	            else
	            	System.out.print(line[M + j - 1]+1 + " ");
	        }
	        System.out.println();
	    }

	}

}

Leave a comment