코테/백준

[백준/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

 

반응형