Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 동전0
- 구현
- 백준12845
- 백준 1946
- 백준
- 알고리즘
- Java
- javascript
- dfs
- Spring Framework MVC
- 자바
- jsp
- 타겟넘버
- 그리디
- 바닥장식
- 신입 사원
- 백준11047
- 백준2606
- 백준11000
- 프로그래머스43165
- BFS
- 펠린드롬
- BFS/DFS
- 백준1388
- sql
- 백준1969
- 프로그래머스
- 백준10988
- 강의실배정
- 백준4796
Archives
- Today
- Total
The Kkang's man
[자바 / Java] 백준 12845 : 모두의 마블 본문
문제
풀이
package week01;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Marble_12845{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine()); // 카드의 개수를 입력받는다
String[] arr = br.readLine().split(" "); // 입력받은 레벨을 나누어서 배열로 저장
int i;
int max = 0, sum = 0;
for(i=0; i<n; i++) {
int L = Integer.parseInt(arr[i]); // String으로 저장된 레벨을 int로 변환해준다
// 최대값을 가진 카드(max)와 다른 카드를 합치면 레벨이 작은 카드는 사라진다.
// 따라서 max를 제외한 모든 카드는 한번씩만 더해지고
// 이어서 max카드를 max가 다른 카드와 맺을 관계의 수(n-1) 만큼 더한다면 답(result)이 된다.
// 이 result는 결국 max를 포함한 모든 카드를 한번씩 다 더하고 max를 (n-2)만큼 더한 값과 같다.
sum += L; // 모든 카드 레벨의 합을 구한다
if(max < L) {
max = L; // 레벨 중 최대값을 구한다
}
}
int result = sum + (max*(n-2));
System.out.println(result);
}
}
'알고리즘 > 그리디' 카테고리의 다른 글
[ 자바 /Java ] 백준 4796 : 캠핑 (0) | 2021.07.04 |
---|---|
[자바 / Java] 백준 1969 : DNA (0) | 2021.06.06 |
[자바 / Java] 백준 11000 : 강의실 배정 (0) | 2021.06.06 |
[자바 / Java] 백준 1946 : 신입 사원 (0) | 2021.06.06 |
[자바 / Java] 백준 11047 : 동전0 (0) | 2021.05.31 |
Comments