๐Ÿ“ algorithm

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค | ๋งˆ์ง€๋ง‰ ๋‘ ์›์†Œ JAVA (์ž๋ฐ”)

c0zi 2023. 9. 16. 17:05

๐Ÿง ๋ฌธ์ œ

: ๋งˆ์ง€๋ง‰ ๋‘ ์›์†Œ

 

 

๐Ÿงพ ๋ฌธ์ œ ์„ค๋ช…

์ •์ˆ˜ ๋ฆฌ์ŠคํŠธ num_list๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ๋งˆ์ง€๋ง‰ ์›์†Œ๊ฐ€ ๊ทธ์ „ ์›์†Œ๋ณด๋‹ค ํฌ๋ฉด ๋งˆ์ง€๋ง‰ ์›์†Œ์—์„œ ๊ทธ์ „ ์›์†Œ๋ฅผ ๋บ€ ๊ฐ’์„ ๋งˆ์ง€๋ง‰ ์›์†Œ๊ฐ€ ๊ทธ์ „ ์›์†Œ๋ณด๋‹ค ํฌ์ง€ ์•Š๋‹ค๋ฉด ๋งˆ์ง€๋ง‰ ์›์†Œ๋ฅผ ๋‘ ๋ฐฐํ•œ ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜์—ฌ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

 

๐Ÿค™๐Ÿป ์ œํ•œ ์‚ฌํ•ญ

  • 2 ≤ num_list์˜ ๊ธธ์ด ≤ 10
  • 1 ≤ num_list์˜ ์›์†Œ ≤ 9

 

 

๐Ÿšฉ ์ž…์ถœ๋ ฅ ์˜ˆ

1. ์ž…๋ ฅ : [2, 1, 6], ์ถœ๋ ฅ : [2, 1, 6, 5]

๋งˆ์ง€๋ง‰ ์›์†Œ์ธ 6์ด ๊ทธ์ „ ์›์†Œ์ธ 1๋ณด๋‹ค ํฌ๊ธฐ ๋•Œ๋ฌธ์— 6 - 1์ธ 5๋ฅผ ์ถ”๊ฐ€ํ•ด returnํ•ฉ๋‹ˆ๋‹ค.

 

2. ์ž…๋ ฅ : [5, 2, 1, 7, 5], ์ถœ๋ ฅ : [5, 2, 1, 7, 5, 10]

๋งˆ์ง€๋ง‰ ์›์†Œ์ธ 5๊ฐ€ ๊ทธ์ „ ์›์†Œ์ธ 7๋ณด๋‹ค ํฌ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— 5์˜ ๋‘ ๋ฐฐ์ธ 10์„ ์ถ”๊ฐ€ํ•ด returnํ•ฉ๋‹ˆ๋‹ค.

 

 


โœ“ ๋ฌธ์ œ ํ’€์ด

 

1. ํฌ๊ธฐ๊ฐ€ 1 ๋” ํฐ ์ •์ˆ˜ ๋ฆฌ์ŠคํŠธ list๋ฅผ ๋งŒ๋“ ๋‹ค.

2. ๊ธฐ์กด ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ n์œผ๋กœ ๋ฐ›๊ณ  ๋งˆ์ง€๋ง‰ ๋‘ ์›์†Œ์˜ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ƒˆ๋กœ์šด ์›์†Œ lastNum์˜ ๊ฐ’์„ ์ •ํ•œ๋‹ค.

3. ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์— ๊ฐ’์„ ๋„ฃ์€ ๋’ค returnํ•œ๋‹ค.

 

import java.util.ArrayList;

class Solution {
    public int[] solution(int[] num_list) {
        
        int n = num_list.length;
        int lastNum = 0;
        int[] list = new int[n + 1];
        
        if (num_list[n - 1] > num_list[n - 2]) {
            lastNum = num_list[n - 1] - num_list[n - 2];
        } else {
            lastNum = 2*num_list[n - 1];
        }
        
        for (int i = 0; i < n; i++) {
            list[i] = num_list[i];
        }
        
        list[n] = lastNum;
            
        return list;
    }
}

 

โœ“ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด

 

๋‚˜์™€ ์ „์ฒด์ ์ธ ๋ฌธ์ œ ํ๋ฆ„์€ ๊ฐ™๊ณ , 3ํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด if๋ฌธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋งˆ์ง€๋ง‰ ๊ฐ’์„ ๊ตฌํ–ˆ๋‹ค๋Š” ์  ์ •๋„๊ฐ€ ๋‹ค๋ฅธ ๋“ฏ ํ–ˆ๋‹ค.

 

class Solution {
    public int[] solution(int[] num_list) {
        int[] answer = new int[num_list.length+1];

        for(int i=0; i<num_list.length; i++){
            answer[i] = num_list[i];
        }

        answer[num_list.length] = num_list[num_list.length-1] > num_list[num_list.length-2] ? num_list[num_list.length-1]-num_list[num_list.length-2]:num_list[num_list.length-1]*2;
        return answer;
    }
}