hye-log

[SWEA]2805번 농작물 수확하기(JAVA) 본문

CodingTest/SWEA

[SWEA]2805번 농작물 수확하기(JAVA)

iihye_ 2023. 7. 29. 17:44

0. 문제 링크

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7GLXqKAWYDFAXB 

 

SW Expert Academy

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

swexpertacademy.com

 

1. 문제 설명

1) N이 홀수인 N*N 농장이 있음

2) 마름모 형태로 수익을 얻을 때 얻을 수 있는 수익 출력

 

2. 입출력

// input
1
5
14054
44250
02032
51204
52212
 
 // output
 #1 23

 

3. 코드

import java.util.*;

public class swea2805 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		// 테스트케이스 받기
		int T = sc.nextInt();
		
		// 테스트케이스 반복
		for(int t = 1; t <= T; t++){
			int N = sc.nextInt();
			int[][] map = new int[N][N];
			int ans = 0;
			
			// 공백 없는 숫자 입력 받기
			for(int i = 0; i < N; i++) {
				String str = sc.next();
				for(int j = 0; j < N; j++) {
					map[i][j] = str.charAt(j) - '0';
				}
			}
			
			// 왼쪽, 오른쪽 기준
			int left = N / 2;
			int right = N / 2;
			
			for(int i = 0; i < N; i++) {
				if (i < N / 2) { // 내려가면서 증가
					for(int j = left; j <= right; j++) {
						ans += map[i][j];
					}
					left--;
					right++;
				} else { // 내려가면서 감소
					for(int j = left; j <= right; j++) {
						ans += map[i][j];
					}
					left++;
					right--;
				}
			}
			
			// 출력
			System.out.printf("#%d %d\n", t, ans);
		}
	}
}

 

실행 결과

 

4. 회고

1) 공백 없는 숫자 입력 받기

String 형태로 입력 받은 후에 charAt으로 한 글자씩 리턴하여 '0' 을 뺌

// 공백 없는 숫자 입력 받기
for(int i = 0; i < N; i++) {
    String str = sc.next();
    for(int j = 0; j < N; j++) {
        map[i][j] = str.charAt(j) - '0';
    }
}

2) 윗줄과 아랫줄로 나누어서 경우를 생각

if (i < N / 2) { // 내려가면서 증가
    for(int j = left; j <= right; j++) {
        ans += map[i][j];
    }
    left--;
    right++;
} else { // 내려가면서 감소
    for(int j = left; j <= right; j++) {
        ans += map[i][j];
    }
    left++;
    right--;
}

 

5. Github

https://github.com/iihye/Algorithm/blob/main/SWEA/swea2805.java

 

728x90

'CodingTest > SWEA' 카테고리의 다른 글

[SWEA]1940번 가랏! RC카!(JAVA)  (0) 2023.07.30
[SWEA]1974번 스도쿠 검증(JAVA)  (0) 2023.07.30
[SWEA]1208번 Flatten(JAVA)  (0) 2023.07.30
[SWEA]1234번 비밀번호(JAVA)  (0) 2023.07.29
[SWEA]7272번 안경이 없어!(JAVA)  (0) 2023.07.29
Comments