본문 바로가기

알고리즘 관련/BOJ

10836 여왕벌

https://www.acmicpc.net/problem/10836

 

접근 방식

처음 시도한 방식 (태스크4에서 시간초과): N개의 입력에 대해 2M-1번씩 순회하여 누적합을 저장

개선한 방식: N개의 입력에 대해서도 누적합을 하고, 마지막에 M^2으로 출력

import java.io.*;
import java.util.*;

public class Main {
  static int N, M;
  static int[] arr;
  public static void main(String[] args) throws Exception {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    StringTokenizer st = new StringTokenizer(br.readLine());
    M = Integer.parseInt(st.nextToken());
    N = Integer.parseInt(st.nextToken());
    arr = new int[2 * M - 1];
    //누적합 계산
    int zero, one, two;
    for(int i = 0; i < N; i++){
      st = new StringTokenizer(br.readLine());
      zero = Integer.parseInt(st.nextToken());
      one = Integer.parseInt(st.nextToken());
      for(int j = zero; j < zero + one; j++){
        arr[j]++;
      }
      two = Integer.parseInt(st.nextToken());
      for(int j = zero + one; j < 2 * M - 1; j++){
        arr[j] += 2;
      }
    }
    for(int i = 0; i < M; i++){
      StringBuilder sb = new StringBuilder();
      for(int j = 0; j < M; j++){
        if(j == 0){
          sb.append(arr[M - i - 1] + 1).append(" ");
        }
        else{
          sb.append(arr[M + j - 1] + 1).append(" ");
        }
      }
      System.out.println(sb);
    }
  }
}

'알고리즘 관련 > BOJ' 카테고리의 다른 글

13335 트럭  (0) 2022.02.04
1967 트리의 지름 구하기  (0) 2022.02.03
1916 최소비용 구하기  (0) 2022.02.03
11062 카드 게임  (0) 2022.01.06
22254 공정 컨설턴트 호석  (0) 2022.01.06