티스토리 뷰

코테

[백준 11660] 구간 합 구하기 5 JAVA

오은이 2023. 1. 20. 16:22

 


 

내가 짠 코드

import java.util.Scanner;

public class Day4 {	

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int n = 0, m = 0;	//n = NxN, m = 입력받는 횟수
		int sum = 0;
		System.out.print("NxN의 N과 입력받을 횟수 입력 : ");
		n = sc.nextInt();
		m = sc.nextInt();
		
		int[][] numArr = new int[n][n];
		for (int i = 0; i < n; i++) {	//n만큼 입력 받기
			for (int j = 0; j < n; j++) {
				numArr[i][j] = sc.nextInt();
			}
		}
		
		System.out.print("수 입력 완료, (x1, y1, x2, y2) 입력 : ");

		int[] x1 = new int [m];		//연산 횟수만큼 입력받아야 하니, 횟수 크기로 생성
		int[] y1 = new int [m];
		int[] x2 = new int [m];
		int[] y2 = new int [m];
		
		for (int i = 0; i < m; i++) {	//횟수 만큼 시작과 끝 입력 받기
				x1[i] = sc.nextInt()-1;		
				y1[i] = sc.nextInt()-1;
				x2[i] = sc.nextInt()-1;
				y2[i] = sc.nextInt()-1;
				
			for (int j=x1[i]; j <= x2[i]; j++) {	//시작 인덱스와 끝 인덱스가 같지 않은 동안
				if(j==x1[i]) {
					if(x1[i] == x2[i]) {	//ex)1,1 1,3처럼 x가 같은 경우
						for (int h=y1[i]; h <= y2[i]; h++) {	//y1부터 끝까지
							sum += numArr[j][h];			
						}
					}
					else {	//현재 j가 x1일 때
						for (int z=y1[i]; z <= numArr.length-1; z++) {	//y1부터 끝까지
							sum += numArr[j][z];			
						}
					}
				}
				else if (j == x2[i]){	//현재 j가 x2일 때
					for (int w = 0; w <= y2[i]; w++) {	//0부터 y2까지
						sum += numArr[j][w];
					}
				}
				else{	//현재 j가 x1, x2 모두 아닐 때 (x1과 x2 사잇값일 때)
					for (int k = 0; k <= numArr.length-1; k++) {	//0부터 끝까지
						sum += numArr[j][k];
					}
				}
			 }
			System.out.println(sum);
			sum = 0;	//초기화 안 시켜주면 전에 입력받은 것도 합산됨
		}
	}
}

 

 

예제1 실행 결과

엥? 2 2 3 4 결과가 다르게 나왔다 ㅡㅡ

틀린 부분이 한 두 개가 아닌가 보다.

 

 

채점 결과

그리고 코드 작성 하면서 너무 길다고 느껴지긴 했는데 역시나 시간 초과로 실패했다.

 

'코테' 카테고리의 다른 글

[백준 1940] 주몽 JAVA  (0) 2023.01.20
[백준 2018] 수들의 합 5 JAVA  (1) 2023.01.20
[백준 10986] 나머지 합 JAVA  (1) 2023.01.20
[백준 1546] 평균 JAVA  (1) 2023.01.20
[백준 11720] 숫자의 합 JAVA  (0) 2023.01.20
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함