본문 바로가기
알고리즘/Samsung

SW 2001. 파리퇴치

by son_i 2023. 4. 18.
728x90

SW Expert Academy

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

M*M 배열을 만들고 그안에 숫자들 입력.

M*M크기 파리채로 내리쳤을 때 가장 큰 수 출력

 

어제 상당히 복잡하게 짰었던 것 같은데 다시 생각하면서 

간단하게 손코딩을 해봤다.

 

먼저 for문이 4중인데 겉에 2중은 배열의 범위 안 + 파리채로 갈 수 있는 최대의 좌표 ex) 5*5배열에 3*3파리채면 (2,2)가 최대로 시작할 수 있는 좌표

 

그리고 안에 for문 두 개는 겉 for문으로 정해진 좌표를 시작으로 파리채 넓이 M*M까지 돌면서 그 안의 값들을 더해주고 최댓값을 찾아내주는 역할.

 

여기서 처음에 고려 못 헀던 건 안for문 int k,m = 0;으로 했는데 이러면 좌표의 시작을 겉 for문으로 지정해놓은 의미가 없음.  i랑 j부터 시작을 해야하고 i와 j가 증가하면서 안 for문 2개의 조건식에도 더해줘야 파리채의 넓이만큼 더해갈 수 있따.

java
닫기
package algorithm; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; /* 사용하는 클래스명이 Solution 이어야 하므로, 가급적 Solution.java 를 사용할 것을 권장합니다. 이러한 상황에서도 동일하게 java Solution 명령으로 프로그램을 수행해볼 수 있습니다. */ public class Solution { public static void main(String args[]) throws Exception { ‌‌//System.setIn(new FileInputStream("C:\\so_Project\\workspace\\BaekJoon\\src\\algorithm\\input.txt")); ‌‌BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ‌‌ ‌‌int num = Integer.parseInt(br.readLine()); //테스트 케이스의 수 ‌‌for(int q=1;q<=num;q++) { //테스트 케이스만큼 반복 ‌‌‌ ‌‌‌StringTokenizer st = new StringTokenizer(br.readLine()); ‌‌‌int N = Integer.parseInt(st.nextToken()); ‌‌‌int M = Integer.parseInt(st.nextToken()); ‌‌‌int arr[][] = new int[N][N]; ‌‌‌ ‌‌‌for(int w=0;w<N;w++) { //배열에 파리 갯수 값 저장 ‌‌‌‌st = new StringTokenizer(br.readLine()); ‌‌‌‌for(int k=0;k<N;k++) ‌‌‌‌‌‌arr[w][k] = Integer.parseInt(st.nextToken()); ‌‌‌} ‌‌‌ ‌‌‌int max = 0; //잡는 파리의 최댓값 ‌‌‌for(int i =0;i<=N-M;i++) { ‌‌‌‌for(int j = 0;j<=N-M;j++){ ‌‌‌‌‌int sum = 0; ‌‌‌‌‌for(int k=i;k<i+M;k++) { ‌‌‌‌‌‌for(int m=j;m<j+M;m++) { ‌‌‌‌‌‌‌sum+= arr[k][m]; ‌‌‌‌‌‌} ‌‌‌‌‌} ‌‌‌‌‌if(max<sum) ‌‌‌‌‌‌max = sum; ‌‌‌‌} ‌‌‌} ‌‌‌System.out.println("#"+q+" "+max); ‌‌} } }
728x90

'알고리즘 > Samsung' 카테고리의 다른 글

SW 1961. 숫자 배열 회전  (0) 2023.04.27
SW 1983.조교의 성적 매기기  (1) 2023.04.18
SW 2005. 파스칼의 삼각형  (0) 2023.04.14
SW 2007. 패턴 마디의 길이  (0) 2023.04.14
SW 1859. 백만 장자 프로젝트  (0) 2023.04.13