Problem ๐Ÿ’ป

https://school.programmers.co.kr/learn/courses/30/lessons/120889

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 

๋ฌธ์ œ ์„ค๋ช…

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

  • ๊ฐ€์žฅ ๊ธด ๋ณ€์˜ ๊ธธ์ด๋Š” ๋‹ค๋ฅธ ๋‘ ๋ณ€์˜ ๊ธธ์ด์˜ ํ•ฉ๋ณด๋‹ค ์ž‘์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‚ผ๊ฐํ˜•์˜ ์„ธ ๋ณ€์˜ ๊ธธ์ด๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด sides์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์„ธ ๋ณ€์œผ๋กœ ์‚ผ๊ฐํ˜•์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋ฉด 1, ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค๋ฉด 2๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.


์ œํ•œ์‚ฌํ•ญ
  • sides์˜ ์›์†Œ๋Š” ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • sides์˜ ๊ธธ์ด๋Š” 3์ž…๋‹ˆ๋‹ค.
  • 1 ≤ sides์˜ ์›์†Œ ≤ 1,000

์ž…์ถœ๋ ฅ ์˜ˆsidesresult
[1, 2, 3] 2
[3, 6, 2] 2
[199, 72, 222] 1

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ๊ฐ€์žฅ ํฐ ๋ณ€์ธ 3์ด ๋‚˜๋จธ์ง€ ๋‘ ๋ณ€์˜ ํ•ฉ 3๊ณผ ๊ฐ™์œผ๋ฏ€๋กœ ์‚ผ๊ฐํ˜•์„ ์™„์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 2๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • ๊ฐ€์žฅ ํฐ ๋ณ€์ธ 6์ด ๋‚˜๋จธ์ง€ ๋‘ ๋ณ€์˜ ํ•ฉ 5๋ณด๋‹ค ํฌ๋ฏ€๋กœ ์‚ผ๊ฐํ˜•์„ ์™„์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 2๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #3

  • ๊ฐ€์žฅ ํฐ ๋ณ€์ธ 222๊ฐ€ ๋‚˜๋จธ์ง€ ๋‘ ๋ณ€์˜ ํ•ฉ 271๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ ์‚ผ๊ฐํ˜•์„ ์™„์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1์„ returnํ•ฉ๋‹ˆ๋‹ค.

Approach 1 โŒ - ๋‚˜์˜ ํ‹€๋ฆฐ ์ฝ”๋“œ

class Solution {
    public int solution(int[] sides) {
        int [] an = sides.ArraySort;
        if (an[0] > an[1]+an[2]) {
            return 1;
        }else {return 2}
    }
}

Approach 2 โญ• - ๋‚˜์˜ ํ’€์ด ๋ณด์™„์ 

๋ฌธ์ œ 1: ๋ฐฐ์—ด ์ •๋ ฌ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ๋ฌธ์ œ

์˜ค๋ฅ˜: 

sides.ArraySort๋Š” ์ž˜๋ชป๋œ ํ˜ธ์ถœ์ด๋‹ค.

Java์—๋Š” ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๋Š” ๋ฉ”์„œ๋“œ๋กœ Arrays.sort()๊ฐ€ ์กด์žฌํ•˜๋ฉฐ,

์ •๋ ฌ ๋Œ€์ƒ์€ sides ๋ฐฐ์—ด ์ž์ฒด์ด๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•:

 Arrays.sort(sides)๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

๋ฌธ์ œ 2: ๊ฐ€์žฅ ๊ธด ๋ณ€๊ณผ ๋‚˜๋จธ์ง€ ๋‘ ๋ณ€์˜ ํ•ฉ ๋น„๊ต ๋…ผ๋ฆฌ ์˜ค๋ฅ˜

์˜ค๋ฅ˜: 

an[0] > an[1] + an[2]๋Š” ์ž˜๋ชป๋œ ๋…ผ๋ฆฌ์ด๋‹ค.

๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๊ฒฝ์šฐ, ๊ฐ€์žฅ ๊ธด ๋ณ€์€ ํ•ญ์ƒ ๋งˆ์ง€๋ง‰ ์š”์†Œ (an[2])์ด๋‹ค.

๋”ฐ๋ผ์„œ ์กฐ๊ฑด์€ an[2] < an[0] + an[1]์ด์–ด์•ผ ํ•œ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•:

๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ์™€ ๋‚˜๋จธ์ง€ ๋‘ ์š”์†Œ์˜ ํ•ฉ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋น„๊ตํ•ด์•ผ ํ•œ๋‹ค.

 

๋ฌธ์ œ 3: ๋ฌธ๋ฒ•์  ์˜ค๋ฅ˜

์˜ค๋ฅ˜:

1. return 1๊ณผ return 2 ๋’ค์— ์„ธ๋ฏธ์ฝœ๋ก (;)์ด ๋น ์ ธ ์žˆ๋‹ค.

2. ๋ณ€์ˆ˜ ์ด๋ฆ„ an๊ณผ ๋ฉ”์„œ๋“œ ์ด๋ฆ„์˜ ์ž˜๋ชป๋œ ์กฐํ•ฉ์ด ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์„ ๋–จ์–ด๋œจ๋ฆฐ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: ๋ฌธ๋ฒ•์  ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.


Solution ๐Ÿ’ก

import java.util.Arrays;

class Solution {
   public int solution(int[] sides) {
      // ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ
      Arrays.sort(sides);
      
      //๊ฐ€์žฅ ๊ธด ๋ณ€์ด ๋‚˜๋จธ์ง€ ๋‘ ๋ณ€์˜ ํ•ฉ๋ณด๋‹ค ์ž‘์€์ง€ ํ™•์ธ
      if (sides[2] < sides[0] + sides[1]) {
          return 1; // ์‚ผ๊ฐํ˜•์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ
      } else {
          return 2; //์‚ผ๊ฐํ˜•์„ ๋งŒ๋“ค ์ˆ˜ ์—†์Œ.
      }
   }
}

๋…ผ๋ฆฌ์  ํ’€์ด ๊ณผ์ •

1. ๋ฐฐ์—ด sides์˜ ์„ธ ๋ณ€์„ ์ •๋ ฌํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ€์žฅ ๊ธด ๋ณ€์ด ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๊ฐ€ ๋˜๋„๋ก ํ•œ๋‹ค.

2. ์‚ผ๊ฐํ˜•์˜ ์„ฑ๋ฆฝ ์กฐ๊ฑด์„ ํ™•์ธํ•œ๋‹ค:

   • ๊ฐ€์žฅ ๊ธด ๋ณ€์˜ ๊ธธ์ด sides[2]๊ฐ€ ๋‚˜๋จธ์ง€ ๋‘ ๋ณ€์˜ ํ•ฉ sides[0] + sides[1]๋ณด๋‹ค ์ž‘์•„์•ผ ์‚ผ๊ฐํ˜•์ด ์„ฑ๋ฆฝํ•œ๋‹ค.

3. ์กฐ๊ฑด์ด ์ฐธ์ด๋ผ๋ฉด 1์„ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๊ฑฐ์ง“์ด๋ผ๋ฉด 2๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.


Reference ๐Ÿ“„

 

+ Recent posts