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
- 개발자
- cleancode
- Spring
- 코딩테스트
- 코딩
- 읽기쉬운코드
- API
- 알고리즘
- JPA
- 클린코드
- 코드
- 프레임워크
- 데이터베이스
- spring boot
- 스프링
- Java
- Baekjoon
- 애자일프로그래밍
- 애자일
- 자바
- Elasticsearch
- 그리디알고리즘
- 백준
- 애자일기법
- ES
- 개발
- 그리디
- 엘라스틱서치
- framework
- database
Archives
- Today
- Total
튼튼발자 개발 성장기🏋️
[2437번] 저울 본문
반응형
문제 기출 : [https://www.acmicpc.net/problem/2437]
풀이 방법
[그리디알고리즘] 접근
정답 비율이 37%라서 겁먹었지만 아주 쉬운 문제다.
최소값을 구하라고 했으니까 당연하게도 오름차순으로 정렬이 우선이다. 그래서 작은 무게의 추를 먼저 가지고 와서 체크를 할꺼다.
새로운 추를 가지고 왔는데 만약 이 새로운 무게가 저울의 (무게의 합 + 1)보다 크면 저울의 (무게의 합 + 1)이 최소값이 될 수 밖에 없다. |
문제 풀이
public class Main {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int answer = 0;
try {
int N = Integer.parseInt(br.readLine());
StringTokenizer tokens = new StringTokenizer(br.readLine(), " ");
int[] weights = new int[N];
int i = -1;
while (tokens.hasMoreTokens()) {
i++;
weights[i] = Integer.parseInt(tokens.nextToken());
}
Arrays.sort(weights);
for(int weight : weights) {
if(answer + 1 < weight) {
break;
}
answer += weight;
}
System.out.println(answer + 1);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
반응형
'Business logic > 백준' 카테고리의 다른 글
[1343번] 폴리오미노 (0) | 2020.04.22 |
---|---|
[1543번] 문서검색 (0) | 2020.04.19 |
[2529번] 부등호 (0) | 2020.04.16 |
[2352번] 반도체 설계 (0) | 2020.04.15 |
[2217번] 로프 (0) | 2020.04.15 |