'๊ฐœ๋ฐœ'์ž๊ตญ ๐Ÿพ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์™„์ „ํƒ์ƒ‰ - ์นดํŽซ _ ์ž๋ฐ”Java ๋ณธ๋ฌธ

๊ฐœ์ธ๊ณต๋ถ€/Algo Rhythm๐Ÿ•บ๐Ÿ’ƒ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์™„์ „ํƒ์ƒ‰ - ์นดํŽซ _ ์ž๋ฐ”Java

young_9 2020. 7. 10. 21:11

๋‚œ์ด๋„: Level 2

 1. ๋ฌธ์ œ  

| ๋ฌธ์ œ ์„ค๋ช…

 

Leo๋Š” ์ง‘์œผ๋กœ ๋Œ์•„์™€์„œ ์•„๊นŒ ๋ณธ ์นดํŽซ์˜ ๋…ธ๋ž€์ƒ‰๊ณผ ๊ฐˆ์ƒ‰์œผ๋กœ ์ƒ‰์น ๋œ ๊ฒฉ์ž์˜ ๊ฐœ์ˆ˜๋Š” ๊ธฐ์–ตํ–ˆ์ง€๋งŒ, ์ „์ฒด ์นดํŽซ์˜ ํฌ๊ธฐ๋Š” ๊ธฐ์–ตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

Leo๊ฐ€ ๋ณธ ์นดํŽซ์—์„œ ๊ฐˆ์ƒ‰ ๊ฒฉ์ž์˜ ์ˆ˜ brown, ๋…ธ๋ž€์ƒ‰ ๊ฒฉ์ž์˜ ์ˆ˜ yellow๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ ์นดํŽซ์˜ ๊ฐ€๋กœ, ์„ธ๋กœ ํฌ๊ธฐ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

 

| ์ œํ•œ์‚ฌํ•ญ

  • ๊ฐˆ์ƒ‰ ๊ฒฉ์ž์˜ ์ˆ˜ brown์€ 8 ์ด์ƒ 5,000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • ๋…ธ๋ž€์ƒ‰ ๊ฒฉ์ž์˜ ์ˆ˜ yellow๋Š” 1 ์ด์ƒ 2,000,000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • ์นดํŽซ์˜ ๊ฐ€๋กœ ๊ธธ์ด๋Š” ์„ธ๋กœ ๊ธธ์ด์™€ ๊ฐ™๊ฑฐ๋‚˜, ์„ธ๋กœ ๊ธธ์ด๋ณด๋‹ค ๊น๋‹ˆ๋‹ค.

 

| ์ž…์ถœ๋ ฅ ์˜ˆ

brown yellow return
10 2 [4, 3]
8 1 [3, 3]
24 24 [8, 6]

 2. ์•Œ๊ณ ๋ฆฌ์ฆ˜ by Yoon 

brown ๊ธฐ์ค€์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ƒ๊ฐํ–ˆ๋‹ค.

 

1. ์šฐ์„  ๋ชจํ‰์ด ๋„ค ๊ณณ์„ ์ง€์šด๋‹ค. num = brown - 4

    

2. brown์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ ˆ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค. num = (brown -4) /2

   ์•„๋ž˜ ์˜ˆ์‹œ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ํฐ์ƒ‰ ์ฒดํฌํ‘œ์‹œ ๋œ ํƒ€์ผ์ด num์— ์†ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

   ์ด๋•Œ ์—ฌ๊ธฐ์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ํฐํŠธ๋Š” (ํฐ์ƒ‰ ์„ธ๋กœ * ํฐ์ƒ‰ ๊ฐ€๋กœ = yellow ํƒ€์ผ)์ด๋‹ค.

 

3. ์œ„ ๊ฒฝ์šฐ์—์„œ num์€ ์ตœ์ข…์ ์œผ๋กœ 3์ด๋ผ๋Š” ๊ฐ’์ด ๋“ค์–ด๊ฐ„๋‹ค. ๊ทธ๋Ÿผ 1๋ถ€ํ„ฐ 3๊นŒ์ง€ for๋ฌธ์„ ๋Œ๋ฉฐ ํ•˜๋‚˜์”ฉ ํƒ์ƒ‰ํ•œ๋‹ค.

4. for๋ฌธ์„ ๋Œ ๋•Œ index๋ฅผ i๋ผ๊ณ  ํ•˜๋ฉด i์™€ num-i ๊ฐ’์„ ๊ณฑํ•ด์„œ yellow ๊ฐ’๊ณผ ๋™์ผํ•œ์ง€ ๋น„๊ตํ•œ๋‹ค.

    ๊ทธ ์ด์œ ๋Š” 2๋ฒˆ์—์„œ ๋งํ•œ ์ด์œ ์™€ ๋™์ผํ•˜๋ฉฐ, ์ด ๊ณผ์ •์€ yellow์˜ ๊ฐ€๋กœ, ์„ธ๋กœ ๊ฐ’์„ ์ฐพ๋Š” ๊ณผ์ •์ด๋‹ค.

    4.1 ๋™์ผํ•˜๋ฉด i์™€ num-i ์ค‘ ๋” ํฐ ์ˆ˜๋ฅผ width๋ณ€์ˆ˜์—, ๋” ์ž‘์€ ๊ฐ’์„ height์— ๋„ฃ๋Š”๋‹ค. (๋ฌธ์ œ ์กฐ๊ฑด)

    4.2 for๋ฌธ break;


 3. ์†Œ์Šค์ฝ”๋“œ 

class Solution {
    public int[] solution(int brown, int yellow) {
        int[] answer = new int[2];
        
        int num = (brown - 4)/2; 
        int width=0, height=0;
     
        for(int i = 1; i < num; i++){
            if((i * (num-i)) == yellow){
                if((i + 2) *(num - i + 2) == brown+yellow){
                    if(i > num-i){
                        width = i;
                        height = num-i;
                    }else{
                        width = num-i;
                        height = i;
                    }
                    answer[0] = width+2;
                    answer[1] = height+2;
                    break;
                }
                   
            }
        }
        
        return answer;
    }
}

 4. ๋А๋‚€์  

ํ’€๋ฆฌ์ง€ ์•Š๋˜ ๋ถ€๋ถ„์—์„œ ์Šคํ„ฐ๋””๋ฅผ ํ•˜๋ฉด์„œ ์Šคํ„ฐ๋””์›์˜ ๋„์›€์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹Œ ์‹ค์ˆ˜์˜€๋Š”๋ฐ for๋ฌธ์—์„œ ์ฒซ ๋ฒˆ์งธ if๋ฌธ์˜ ์กฐ๊ฑด๋ฌธ์ธ i * (num - i) ๋กœ ๊ด„ํ˜ธ ๋ฌธ์ œ์˜€๋‹ค.. ๋‚˜๋Š” ๋ฐ”๋ณด . .

 

 

 

[Algo Rhythm๐Ÿ•บ๐Ÿ’ƒ]

๋‚ ์งœ: 2020.07.10

Comments