SWEA(SW Expert Academy) 20551. 증가하는 사탕 수열 D3

heesan·2024년 10월 6일

코딩테스트

목록 보기
4/40

● 문제출처

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&problemLevel=4&contestProbId=AY4XhKTKU0IDFARM&categoryId=AY4XhKTKU0IDFARM&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=4&pageSize=10&pageIndex=2

●정리(요약)

A<B<C (0<A,B,C<=3000)
조건을 만족하기 위해 몇개 감소해야하는지
조건을 이미 만족하면 0, 감소를 하여도 조건을 만족하지 못할 때 -1

●코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
 
class Solution
{
    static int [] arr;
    public static void main(String args[]) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        StringBuilder sb= new StringBuilder();
         
        int T = Integer.parseInt(br.readLine());
         
        for(int i = 1; i<=T; i++) {
            int count = 0;
            arr= new int[3];
            st= new StringTokenizer(br.readLine());
             
            for(int j =0 ; j<3; j++) {
                arr[j]=Integer.parseInt(st.nextToken());
            }
             
            if(arr[2]<3) {
                sb.append("#").append(i).append(" ").append(-1).append("\n");
                continue;
            }
             
            for(int j=2; j>0; j--) {
                if(arr[j]<=arr[j-1]) {
                    count += arr[j-1]-(arr[j]-1);
                    arr[j-1] = (arr[j]-1);
                }
                if(arr[j-1]<=0) {
                    count=-1;
                    break;
                }
            }
             
            sb.append("#").append(i).append(" ").append(count).append("\n");
        }
        System.out.println(sb.toString());
    }
 
}
profile
👩‍💻Backend Engineering

0개의 댓글