수 묶기 1744

LJM·2023년 1월 29일
0

백준풀기

목록 보기
63/259

https://www.acmicpc.net/problem/1744

예외처리가 많아서 코드를 간결하게 하는게 어렵다

import java.io.*;
import java.util.*;

public class Main
{
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    public static void main(String[] args) throws IOException
    {
        int N = Integer.parseInt(br.readLine());

        Integer[] input = new Integer[N];

        for(int i = 0; i < N; ++i)
        {
            input[i] = Integer.parseInt(br.readLine());
        }

        Arrays.sort(input, Collections.reverseOrder());

        int sum = 0;

        int idx = 0;
        while(idx < N)
        {
            if(idx+1 < N )
            {
                if(input[idx+1] > 0 && input[idx+1] != 1)
                {
                    sum += input[idx] * input[idx+1];
                    idx+=2;
                }
                else if(input[idx] <= 0 && (N - idx) %2 == 0 )
                {
                    sum += input[idx] * input[idx+1];
                    idx+=2;
                }
                else//input[idx] > 0 && input[idx+1] <= 0
                {
                    sum += input[idx];
                    idx++;
                }

            }
            else
            {
                sum += input[idx];
                idx++;
            }

        }

        System.out.println(sum);
    }
}
profile
게임개발자 백엔드개발자

0개의 댓글

Powered by GraphCDN, the GraphQL CDN