코딍코딍
코딩기록
코딍코딍
전체 방문자
오늘
어제
  • 분류 전체보기 (271)
    • 개발 (2)
    • Java (1)
    • 스프링 (28)
    • JPA (11)
    • Git (3)
    • 알고리즘 (160)
      • 백준 (132)
      • 프로그래머스 (8)
      • SWEA (20)
    • 토이 프로젝트 (14)
      • 간단한 Springboot CRUD (1)
      • 게시판 프로젝트 (13)
    • 알고리즘 개념정리 (8)
    • 오류 해결 (13)
    • 보류 (0)
    • AWS (5)
    • 트러블 슈팅 (0)
    • 회고 (3)
    • CS (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

최근 글

티스토리

hELLO · Designed By 정상우.
코딍코딍

코딩기록

알고리즘/백준

1448번 : 삼각형 만들기

2022. 9. 7. 19:47

https://www.acmicpc.net/problem/1448

 

1448번: 삼각형 만들기

첫째 줄에 빨대의 개수 N이 주어진다. N은 3보다 크거나 같고, 1,000,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 빨대의 길이가 한 줄에 하나씩 주어진다. 빨대의 길이는 1,000,000보다

www.acmicpc.net

 

 

문제

 

 

코드

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        Integer arr[] = new Integer[n];
        for(int i=0;i<n;i++) {
            arr[i] = Integer.parseInt(br.readLine());
        }
        Arrays.sort(arr,Collections.reverseOrder());
        for(int i=0;i<n-2;i++) {
            if(arr[i]<arr[i+1]+arr[i+2]) {
                System.out.println(arr[i] + arr[i + 1] + arr[i + 2]);
                return;
            }
        }
        System.out.println(-1);
    }
}

 

 

해결방법

삼각형이 될 수 있는 조건은 가장 긴 변의 길이보다 나머지 두 변의 길이의 합이 더 커야 한다.

만들 수 있는 삼각형 중 세 변의 길이가 가장 크려면 입력 받은 빨대의 길이를 정렬하고 가장 긴 변의 길이를 정렬된 배열을 토대로 낮추면서 삼각형이 될 수 있는 세 변의 최댓값을 찾아주면 된다.

'알고리즘 > 백준' 카테고리의 다른 글

13164번 : 행복 유치원  (0) 2022.09.08
15903번 : 카드 합체 놀이  (0) 2022.09.07
7795번 : 먹을 것인가 먹힐 것인가  (0) 2022.08.31
2468번 : 안전 영역  (0) 2022.08.27
7562번 : 나이트의 이동  (0) 2022.08.25
    '알고리즘/백준' 카테고리의 다른 글
    • 13164번 : 행복 유치원
    • 15903번 : 카드 합체 놀이
    • 7795번 : 먹을 것인가 먹힐 것인가
    • 2468번 : 안전 영역
    코딍코딍
    코딍코딍
    ㅎ2

    티스토리툴바