๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 1448_์‚ผ๊ฐํ˜• ๋งŒ๋“ค๊ธฐ

๋ฟŒ์•ผ._. 2023. 11. 20. 16:26

Silver III

๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/1448)

< ์‚ผ๊ฐํ˜• ๋งŒ๋“ค๊ธฐ >

 

๋ฌธ์ œ ํ’€์ด 

 

์‚ผ๊ฐํ˜•์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์กฐ๊ฑด์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๐ŸŒฑ ์‚ผ๊ฐํ˜• ๋งŒ๋“œ๋Š” ์กฐ๊ฑด

๊ฐ€์žฅ ๊ธด ๋ณ€์˜ ๊ธธ์ด < ๋‚˜๋จธ์ง€ ๋‘ ๋ณ€์˜ ๊ธธ์ด ํ•ฉ

 

 my solution (Java)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;

public class _1448_ { // ์‚ผ๊ฐํ˜• ๋งŒ๋“ค๊ธฐ

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

		int n = Integer.parseInt(bf.readLine());

		Integer arr[] = new Integer[n];
		for (int i = 0; i < n; i++) {
			arr[i] = Integer.parseInt(bf.readLine());
		}

		Arrays.sort(arr, Collections.reverseOrder());

		boolean flag = false;

		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]);
				flag = true;
				break;
			}
		}

		if (!flag) {
			System.out.println(-1);
		}
	}
}

 

Main

๋ณ€์ˆ˜)
n : ๋นจ๋Œ€ ๊ฐœ์ˆ˜
arr : ๋นจ๋Œ€์˜ ๊ธธ์ด
flag : ์‚ผ๊ฐํ˜• ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธ

 

์‚ผ๊ฐํ˜• ์„ธ ๋ณ€์˜ ๊ธธ์ด์˜ ํ•ฉ์˜ ์ตœ๋Œ“๊ฐ’์„ ์ฐพ๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๋นจ๋Œ€์˜ ๊ธธ์ด๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. ๊ทธ ํ›„ ๋ฐฐ์—ด์„ 3๊ฐœ์”ฉ ํƒ์ƒ‰ํ•˜๋ฉฐ ๊ฐ€์žฅ ํฐ ๊ฐ’์ด ๋‚˜๋จธ์ง€ ๋‘ ๊ฐ’์˜ ํ•ฉ๋ณด๋‹ค ์ž‘์€์ง€ ํ™•์ธ ํ›„ ์กฐ๊ฑด์— ๋งž๋Š” ๊ฐ’์˜ ์ดํ•ฉ์„ ์ถœ๋ ฅํ•œ๋‹ค. ์กฐ๊ฑด์— ๋งž๋Š” ๊ฐ’์ด ํ•˜๋‚˜๋„ ์—†๋‹ค๋ฉด -1์„ ์ถœ๋ ฅํ•œ๋‹ค.


๐ŸŒฑ ํ‹€๋ฆฐ ์ด์œ 

์ฒ˜์Œ์— ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ ํ›„ 3์ค‘ for๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํƒ์ƒ‰ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งŒ์•ฝ a < b+c๊ฐ€ ์„ฑ๋ฆฝํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋‹ค์Œ ๊ฐ’์„ ํ™•์ธํ•ด๋„ a < b+c๊ฐ€ ์„ฑ๋ฆฝ๋  ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ž˜์„œ 3์ค‘ for๋ฌธ ๋Œ€์‹  for๋ฌธ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ๊ฑด์„ ํ™•์ธํ•œ๋‹ค.