-
[JAVA] 백준 17123 배열 놀이알고리즘 공부/문제 풀이 2021. 9. 22. 19:38
https://www.acmicpc.net/problem/17123
17123번: 배열 놀이
N개의 행과 N개의 열로 구성된 2차원 정수 배열 A가 있다. A[r, c]는 r번째 행 c번째 열에 위치한 원소의 값을 나타낸다. 이 배열에 총 M번의 연산을 적용하는 배열 놀이를 생각해보자. 각 연산에 대
www.acmicpc.net
풀이
코드
import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(br.readLine()); StringBuilder sb = new StringBuilder(); while(T-->0){ StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); int M = Integer.parseInt(st.nextToken()); int[][] arr = new int[N][N]; int[] rows = new int[N]; int[] cols = new int[N]; //arr 값 받아오기와 rows, cols 초기화 for(int i=0;i<N;i++){ st = new StringTokenizer(br.readLine()); for(int j=0;j<N;j++){ int val = Integer.parseInt(st.nextToken()); arr[i][j] = val; rows[i] += val; cols[j] += val; } } for(int i=0;i<M;i++){ st = new StringTokenizer(br.readLine()); int r1 = Integer.parseInt(st.nextToken())-1; int c1 = Integer.parseInt(st.nextToken())-1; int r2 = Integer.parseInt(st.nextToken())-1; int c2 = Integer.parseInt(st.nextToken())-1; int v = Integer.parseInt(st.nextToken()); for(int r=r1; r<=r2; r++){ rows[r] += (c2-c1+1)*v; } for(int c=c1; c<=c2; c++){ cols[c] += (r2-r1+1)*v; } } for(int i=0;i<N;i++) sb.append(rows[i]+" "); sb.append('\n'); for(int i=0;i<N;i++) sb.append(cols[i]+" "); sb.append('\n'); } System.out.println(sb); } }
'알고리즘 공부 > 문제 풀이' 카테고리의 다른 글
[JAVA] 백준 1786 찾기 (0) 2021.09.23 [JAVA] 백준 2042 구간 합 구하기 (0) 2021.09.22 [JAVA] 백준 11062 카드 게임 (0) 2021.09.19 [JAVA] SWEA 1767 프로세서 연결하기 (0) 2021.09.18 [JAVA] 백준 13460 구슬 탈출 2 (0) 2021.09.17