[BOJ] 백준 [1744] 수 묶기JAVA

[BOJ] 백준 [1744] 수 묶기JAVA

import java.util. * ;

import java.io. * ;

public class Main {

static int N;

static LinkedList < Integer > [] list = new LinkedList[ 3 ];

public static void main( String [] args) throws IOException {

BufferedReader br = new BufferedReader( new InputStreamReader( System . in ));

N = Integer. parseInt (br.readLine());

for ( int i = 0 ;i < 3 ;i + + ) list[i] = new LinkedList < > ();

for ( int i = 0 ; i < N; i + + ) {

int input = Integer. parseInt (br.readLine());

if (input > 0 ) list[ 2 ]. add (input);

else if (input < 0 ) list[ 0 ]. add (input);

else list[ 1 ]. add (input);

}

list[ 2 ].sort((o1,o2) - > o2 - o1);

list[ 0 ].sort((o1,o2) - > o1 - o2);

int sum = 0 ;

while (list[ 2 ].size() > 0 ){

if (list[ 2 ].size() > 1 ) {

int peek = list[ 2 ].peek();

if (peek > 1 ) {

int poll = list[ 2 ].poll();

if (list[ 2 ].peek() > 1 ) sum + = poll * list[ 2 ].poll();

else sum + = poll + list[ 2 ].poll();

} else sum + = list[ 2 ].poll() + list[ 2 ].poll();

}

else sum + = list[ 2 ].poll();

}

while (list[ 0 ].size() > 0 ){

if (list[ 0 ].size() > 1 ) sum + = list[ 0 ].poll() * list[ 0 ].poll();

else if ( ! list[ 1 ].isEmpty()) break ;

else sum + = list[ 0 ].poll();

}

System . out . println (sum);

}

}

from http://katastrophe.tistory.com/63 by ccl(A) rewrite - 2021-10-26 16:01:31