2217번 - 로프
물리학 - "로프" (분류는 물리학이나 사실상 정렬 문제)
처음 풀이 코드
package AlgorithmStudy;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
// 물리학 - 로프
public class Practice {
static int N;
static Integer[] rope;
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
N=Integer.parseInt(br.readLine());
rope=new Integer[N];
for(int i=0; i<N; i++){
rope[i]=Integer.parseInt(br.readLine());
}
Arrays.sort(rope, Collections.reverseOrder()); //내림차순으로 정렬 , 기본타입이라 래퍼클래스로 변환
Integer max=rope[0];
for(int i=1; i<N; i++){
max=Math.max(rope[i]*(i+1),max); // Integet*int 가능한가? --> 자동으로 boxing/unboxing 됨
}
System.out.println(max);
}
}
Refactoring
package AlgorithmStudy.정렬.P2217;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
// 물리학 - 로프
public class Main {
static int N;
static int[] rope;
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
N=Integer.parseInt(br.readLine());
rope=new int[N];
for (int i = 0; i < N; i++) {
rope[i]=Integer.parseInt(br.readLine());
}
// rope 의 길이 정렬
Arrays.sort(rope);
// 최대 중량 구해주는 for 문
int max=0;
for(int i=0; i<N; i++){
int temp=rope[i]*(N-i);
if(temp>max){
max=temp;
}
}
System.out.println(max);
}
}
Author And Source
이 문제에 관하여(2217번 - 로프), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@albatross__3/백준-2217번저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)