반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 코딩
- 코테
- 프로그래머스
- stack
- js
- javascript
- 알고리즘
- 정렬
- 카카오
- AtoZ0403
- java
- 삼성
- array
- 코딩테스트
- 스텍
- 그리디알고리즘
- 자료구조
- 백준
- spring
- NestJS
- 중간 평균값 구하기
- 배열
- mybatis
- 콜백지옥
- 삼성소프트웨어아카데미
- SWEA
- 인프런
- 자바스크립트
- 코테준비
- 자바
Archives
- Today
- Total
개발에 AtoZ까지
[JAVA][D2] 2001. 파리 퇴치 본문
반응형
문제
N x N 배열 안의 숫자는 해당 영역에 존재하는 파리의 개수를 의미한다.
아래는 N=5 의 예이다.
M x M 크기의 파리채를 한 번 내리쳐 최대한 많은 파리를 죽이고자 한다.
죽은 파리의 개수를 구하라!
예를 들어 M=2 일 경우 위 예제의 정답은 49마리가 된다.
[제약 사항]
1. N 은 5 이상 15 이하이다.
2. M은 2 이상 N 이하이다.
3. 각 영역의 파리 갯수는 30 이하 이다.
[입력]
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 번째 줄에 N 과 M 이 주어지고,
다음 N 줄에 걸쳐 N x N 배열이 주어진다.
[출력]
출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)
예시
풀이
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Solution {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
// 입력된 반복수
int caseCount = Integer.parseInt(br.readLine());
for (int i = 1; i <= caseCount; i++) {
String[] str = br.readLine().split(" ");
int N = Integer.parseInt(str[0]);
int M = Integer.parseInt(str[1]);
int max = 0;
int[][] nums = new int[N][N];
// 입력된 파리개수 넣기
for (int x = 0; x<N; x++) {
String[] lineNums = br.readLine().split(" ");
for (int y = 0; y<N; y++) {
// 문자->숫자
nums[x][y] = Integer.parseInt(lineNums[y]);
}
}
//0부터 N-M만큼 반복(내부에서 M만큼 반복하기 때문에 제한을 걸어둬서 예외발생하지 않도록 설정)
for (int x=0; x<=N-M; x++) {
for (int y=0; y<=N-M; y++) {
int sum=0;
//x축을 기준으로 M만큼까지의 숫자들을 모두 더함
for(int a=x;a<x+M;a++) {
for(int b=y;b<y+M;b++) {
sum+=nums[a][b];
}
}
if(max<sum) {
max=sum;
}
}
}
System.out.println("#"+i+" "+max);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
반응형
'코딩테스트 준비 > SWEA' 카테고리의 다른 글
[JAVA][D1] 2027. 대각선 출력하기 (0) | 2021.01.05 |
---|---|
[JAVA][D1] 2029. 몫과 나머지 출력하기 (0) | 2021.01.05 |
[JAVA][D1] 2043. 서랍의 비밀번호 (0) | 2021.01.05 |
[JAVA][D2] 2005. 파스칼의 삼각형 (0) | 2021.01.04 |
[JAVA][D1] 2046. 스탬프 찍기 (0) | 2021.01.04 |
[JAVA][D1] 2047. 신문 헤드라인 (0) | 2021.01.04 |
[JAVA][D1] 2050. 알파벳을 숫자로 변환 (0) | 2021.01.04 |
Comments