728x90
목차
- 개요
- 본문
- 1) 문제
- 2) 과정
- 3) 코드 전체
개요
이전에 알고리즘 스터디에서 JAVA를 이용해 백준 2217번 로프를 풀었습니다. 이를 정리해보고자 합니다.
2217번: 로프
N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하
www.acmicpc.net
본문
1) 문제
2) 과정
그리 오래걸리진 않았던 문제입니다. 30분?에서 1시간 정도 사용했던 것 같아요.
이번엔 2-1) main에 모든 설명을 적어뒀습니다. 이를 참고해주세요!
2-1) main
public static void main(String[] args) throws IOException {
//input
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int n=Integer.parseInt(reader.readLine());
Integer[]intArr = new Integer[n];
for(int i=0;i<n;i++)intArr[i]=Integer.parseInt(reader.readLine());
Arrays.sort(intArr, Collections.reverseOrder());
// logic
long answer = 0;
// 내림차순 해놓은 배열에서 로프의 개수(인덱스+1) * 새로운 값 곱한게
// 병렬연결한 로프가 감당할 수 있는 무게임.
// 그래서 하나씩 인덱스 이동하면서 큰 값을 answer에 저장해나가면 됨.
for(int i=0;i<n;i++) answer=Math.max(intArr[i]*(i+1),answer);
// output
System.out.println(answer);
}
3) 전체코드
그렇게 완성된 코드는 다음과 같습니다.
package sujeong.greedy;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
public class BOJ2217 {
public static void main(String[] args) throws IOException {
//input
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int n=Integer.parseInt(reader.readLine());
Integer[]intArr = new Integer[n];
for(int i=0;i<n;i++)intArr[i]=Integer.parseInt(reader.readLine());
Arrays.sort(intArr, Collections.reverseOrder());
// logic
long answer = 0;
// 내림차순 해놓은 배열에서 로프의 개수(인덱스+1) * 새로운 값 곱한게
// 병렬연결한 로프가 감당할 수 있는 무게임.
// 그래서 하나씩 인덱스 이동하면서 큰 값을 answer에 저장해나가면 됨.
for(int i=0;i<n;i++) answer=Math.max(intArr[i]*(i+1),answer);
// output
System.out.println(answer);
}
}
깃헙으로 더 자세히 보고싶으시다면, 아래 링크를 참고해주세요 :)
https://github.com/Park1122/Algorithm-Study/blob/master/sujeong/greedy/BOJ2217.java
GitHub - Park1122/Algorithm-Study: 명지대학교 학생들이 모여서 만든 알고리즘 공부 및 코딩테스트 준비
명지대학교 학생들이 모여서 만든 알고리즘 공부 및 코딩테스트 준비를 위한 스터디입니다. Contribute to Park1122/Algorithm-Study development by creating an account on GitHub.
github.com
'알고리즘(JAVA 사용) > Greedy' 카테고리의 다른 글
[알고리즘풀이]백준 1946 : 신입 사원 JAVA (0) | 2021.10.10 |
---|---|
[알고리즘풀이]백준 1931: 회의실 배정 JAVA (0) | 2021.10.05 |
[알고리즘풀이]백준 1715: 카드 정렬하기 JAVA (0) | 2021.10.05 |
[알고리즘풀이]백준 1541: 잃어버린 괄호 JAVA (0) | 2021.10.05 |
[알고리즘풀이]백준 14916 : 거스름돈 JAVA (0) | 2021.10.05 |