[백준 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  (0) 2023.01.20
[백준 10986] 나머지 합 JAVA  (0) 2023.01.20
[백준 1546] 평균 JAVA  (0) 2023.01.20
[백준 11720] 숫자의 합 JAVA  (0) 2023.01.20
'코딩테스트/백준' 카테고리의 다른 글
  • [백준 2018] 수들의 합 5 JAVA
  • [백준 10986] 나머지 합 JAVA
  • [백준 1546] 평균 JAVA
  • [백준 11720] 숫자의 합 JAVA
오은이
오은이
  • 오은이
    오은이 하우스
    오은이
  • 전체
    오늘
    어제
    • 분류 전체보기 (75)
      • 일기 (2)
      • Python (1)
      • Java (4)
      • CS (2)
      • 코딩테스트 (26)
        • 백준 (25)
        • 프로그래머스 (1)
      • 웹 개발 (17)
        • Spring (6)
        • JavaScript (3)
        • WebSquare (5)
        • React (3)
      • DB (5)
        • MySQL (4)
        • Oracle (1)
      • 서버&인프라 (14)
        • Server (5)
        • Cloud (8)
        • Linux (1)
      • 자격증 (4)
        • 정보처리기사 (1)
        • AICE (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    websquare
    백준
    docker컨테이너
    리액트
    AICE
    MySQL
    db
    백준자바
    클라우드
    스프링부트
    Spring
    react
    google cloud run
    Apache
    docker앱배포
    자바
    Java
    톰캣
    dockerspring
    AI
    AICE Associate
    tomcat
    오블완
    머신러닝
    티스토리챌린지
    SpringBoot
    알고리즘
    docker배포
    웹스퀘어
    docker
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
오은이
[백준 11660] 구간 합 구하기 5 JAVA
상단으로

티스토리툴바