on
[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