반응형
츄르사려고 코딩하는 코집사입니다.
1. [SW expert Academy] SWEA 11457번 gravity 자바(Java)
1) 난이도 : D3
2) 문제번호 : 11457번
3) 문제 출처
swexpertacademy.com/main/learn/course/subjectDetail.do?subjectId=AV10CSr6ABUCFAY2
2. 문제
상자들이 쌓여있는 방이 있다. 방이 오른쪽으로 90도 회전하여 상자들이 중력의 영향을 받아 낙하한다고 할 때, 낙차가 가장 큰 상자를 구하여 그 낙차를 출력하시오.
총 26개의 상자가 회전한 후, A 상자는 7, B의 상자는 6, C의 상자의 낙차는 1이 된다.
3. 제약사항
-
4. 입력
테스트 케이스,행의 수,상자의 높이
5. 출력
최대 낙차 값을 출력
6. 풀이
- 배열을 완전 탐색하면서 상자가 있는 경우(1)에는 그 밑의 배열들을 탐색하여 0의 갯수를 세어 준다.
- 0의 갯수는 낙차가 되기 때문이다.
7. 소스 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt(); //테스트 케이스의 갯수
for(int tc=1; tc<=T;tc++) {
//크기
int N = sc.nextInt();
//최댓값 변수
int Max = 0;
//1차원배열 선언
int[] input = new int[N];
//2차원배열 선언
int[][] arr = new int[N][N];
//arr를 완전탐색해서 0의 갯수를 구해 결과값을 저장하는 배열
int[][] result = new int[N][N];
//각 행에 높이를 입력받음
for(int i=0;i<N;i++) input[i] = sc.nextInt();
//높이만큼 배열에 1 저장
for(int i=0;i<N;i++) {
for(int j=0;j<input[i];j++) {
arr[i][j] = 1;
}
}
//행
for(int i=0;i<N;i++) {
//열
for(int j=0;j<N;j++) {
//현재 위치의 값이 1이라면
if(arr[i][j]==1){
int count = 0; //0의 갯수를 count하기 위한 변수
//k는 i+1행(아래행)부터 N까지
for(int k=i+1;k<N;k++) {
//아래 행의 값이 0이라면 count 1씩 증가
if(arr[k][j]==0) count++;
}
//그 결과를 result 배열에 입력
result[i][j] = count;
Max = Math.max(count, Max);
}
}
}
//높이만큼 입력받은 배열 출력
System.out.println("이건 높이만큼 입력받은 배열");
for(int i=0;i<N;i++) {
for(int j=0;j<N;j++) {
System.out.print(arr[i][j]);
}
System.out.println();
}
System.out.println("----------------------");
//이건 결과를 저장한 result 배열
System.out.println("이건 결과를 저장한 result 배열");
for(int i=0;i<N;i++) {
for(int j=0;j<N;j++) {
System.out.print(result[i][j]);
}
System.out.println();
}
System.out.println();
//최댓값 출력
System.out.println(Max);
}
}
}
반응형
'알고리즘 > SW expert Academy' 카테고리의 다른 글
[SW expert Academy] SWEA 6808번 규영이와 인영이의 카드게임 자바(Java) (0) | 2021.02.17 |
---|---|
[SW expert Academy] SWEA 1984번 중간 평균값 구하기 자바(Java) (0) | 2021.02.17 |
[SW expert Academy] SWEA 5215번 햄버거 다이어트 자바(Java) - 비트마스크 풀이 (0) | 2021.02.17 |
[SW expert Academy] SWEA 1493번 수의 새로운 연산 자바(Java) (0) | 2021.02.16 |
[SW expert Academy] SWEA 7272번 안경이 없어! 자바(Java) (0) | 2021.02.13 |
[SW expert Academy] SWEA 1234번 비밀번호 자바(Java) (0) | 2021.02.13 |
[SW expert Academy] SWEA 1983번 조교의 성적 매기기 자바(Java) (0) | 2021.02.11 |
[SW expert Academy] SWEA 1970번 쉬운 거스름돈 자바(Java) (0) | 2021.02.11 |
최근댓글