코테/백준
[백준/JAVA] 1448번: 삼각형 만들기
imname1am
2023. 9. 5. 19:59
반응형
🔺 문제
1448번: 삼각형 만들기
첫째 줄에 빨대의 개수 N이 주어진다. N은 3보다 크거나 같고, 1,000,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 빨대의 길이가 한 줄에 하나씩 주어진다. 빨대의 길이는 1,000,000보다
www.acmicpc.net
🔺 코드
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
|
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
int[] A = new int[N];
for(int i = 0 ; i < N ; i++) {
A[i] = Integer.parseInt(br.readLine());
}
Arrays.sort(A); // 배열 오름차순 정렬
for(int i = N - 1 ; i >= 2 ; i--) { // 맨 뒤쪽부터
if(A[i] < A[i - 2] + A[i - 1]) {
System.out.println(A[i - 2] + A[i - 1] + A[i]);
return;
}
}
System.out.println(-1);
}
}
|
cs |
✅ 해결 아이디어
✔ 그리디 & 정렬
◆ 삼각형 성립 조건 : a + b > c (c : 가장 긴 길이)
1. 배열 오름차순 정렬
2. 정답 구하기
2-1) 맨 마지막 원소부터 내려오면서 a + b > c를 만족하는 연달아 붙어있는 3가지 값이 존재하면, 바로 정답 출력
2-2) 만족하는 값이 존재하지 않는다면, -1 출력
💬 느낀 점
이 정도 수준 그리디 문제들만 나와준다면 감사할 거 같은데 그럴일은 절대 없겠지ㅎㅎ
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
[자바] 백준 1448 - 삼각형 만들기 (java)
문제 : boj1448 필요 알고리즘 개념 그리디, 정렬 그리디로 접근해서 풀 수 있다. 수학 삼각형의 세 변을 이루는 규칙을 알아야 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않
nahwasa.com
반응형