반응형
1. 문제
가로 N 세로 100 크기의 방에 상자들이 쌓여있다. 방이 오른쪽으로 90도 회전하여 상자들이 중력의 영향을 받아 낙하한다고 할 때, 가장 큰 낙차를 구하여라
[제약 사항]
중력은 회전이 완료된 후 적용된다.
상자들은 모두 한쪽 벽면에 붙여진 상태로 쌓여 2차원의 형태를 이루며 벽에서 떨어져서 쌓인 상자는 없다.
방의 세로 길이는 항상 100이다. 즉, 상자는 최소 0, 최대 100 높이로 쌓을 수 있다
[입력]
첫 번째 줄에 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스의 첫 줄에는 방의 가로길이가 주어지고 그 다음 줄부터는 쌓여있는 상자의 수가 주어진다.
[출력]
#부호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 테스트 케이스에 대한 답을 출력한다.
[그림설명]
총 26개의 상자가 회전 후, 오른쪽 방 그림의 상태가 된다. A 상자의 낙차가 7로 가장크므로 7을리턴하면 된다.
회전 결과, B상자의 낙차는6, C상자의 낙차는 1이다.
https://swexpertacademy.com/main/code/userProblem/userProblemDetail.do
2. My 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
class Solution
{
public static void main(String args[]) throws Exception
{
//문제 9개 -> 7 4 2 0 0 6 0 7 0 가정
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//0. test_case를 입력 받는다.
String test_case = br.readLine();
int test_case_int = Integer.parseInt(test_case);
for(int tc=1;tc<test_case_int+1;tc++) {
// 1. n을 입력받는다.
String n = br.readLine(); //9 str
int n_int = Integer.parseInt(n);//9 int
//2. n개의 상자 층수를 입력받는다.
String box_floor = br.readLine(); //7 4 2 0 0 6 0 7 0 str
StringTokenizer bf = new StringTokenizer(box_floor);
int[] box_floor_int = new int[n_int]; //7 4 2 0 0 6 0 7 0 int
int idx=0;
while(bf.hasMoreTokens()) {
box_floor_int[idx++]=Integer.parseInt(bf.nextToken());
}
//3. 가장 높은 상자의 위치 구하기
//앞에 있을수록 떨어질 때 더 좋으니 같은 요소는 고려 x
//다만 똑같은 높이 애들은 걸리니까 똑같은 위치가 몇개가 있는지 확인
int max_height=-1;//0으로 하면 0인 건물 층에 걸림
int max_index=0;
int same_height_count=0; //같은 높이 층을 가진 블럭
for(int i=0;i<n_int;i++) {
if(max_height==box_floor_int[i]) {
same_height_count++;
}
if(max_height<box_floor_int[i]) {
max_index=i;
max_height=box_floor_int[i];
}
}
int result=(n_int-max_index-1)-same_height_count;
if(result>0) System.out.println("#"+tc+" "+result);
else System.out.println("#"+tc+" "+(-result));
}//tc end
}
}
반응형
'알고리즘 > SWEA' 카테고리의 다른 글
1210. Ladder1 (0) | 2023.02.15 |
---|---|
1979. 어디에 단어가 들어갈 수 있을까 (0) | 2023.02.15 |
14178. 1차원 정원 (0) | 2023.02.14 |
1983. 조교의 성적 매기기 (0) | 2023.02.14 |
7272. 안경이 없어! (0) | 2023.02.14 |