๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿงฉ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/๐Ÿต ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด(Java)

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_์ œ์ผ ์ž‘์€ ์ˆ˜ ์ œ๊ฑฐํ•˜๊ธฐ

by carrot0911 2024. 11. 15.

๋ฌธ์ œ ์„ค๋ช…

์ •์ˆ˜๋ฅผ ์ €์žฅํ•œ ๋ฐฐ์—ด, arr์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ ์ œ๊ฑฐํ•œ ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”. ๋‹จ, ๋ฆฌํ„ดํ•˜๋ ค๋Š” ๋ฐฐ์—ด์ด ๋นˆ ๋ฐฐ์—ด์ธ ๊ฒฝ์šฐ์—” ๋ฐฐ์—ด์— -1์„ ์ฑ„์›Œ ๋ฆฌํ„ดํ•˜์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด arr์ด [4,3,2,1]์ธ ๊ฒฝ์šฐ๋Š” [4,3,2]๋ฅผ ๋ฆฌํ„ดํ•˜๊ณ , [10] ๋ฉด [-1]์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.

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

 

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

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

programmers.co.kr

์ œํ•œ ์กฐ๊ฑด

  • arr์€ ๊ธธ์ด 1 ์ด์ƒ์ธ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
  • ์ธ๋ฑ์Šค i, j์— ๋Œ€ํ•ด i ≠ j์ด๋ฉด arr[i] ≠ arr[j] ์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

arr return
[4, 3, 2, 1] [4, 3, 2]
[10] [-1]

 

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ

import java.util.*;

class Solution {
    public ArrayList<Integer> solution(int[] arr) {
        ArrayList<Integer> answer = new ArrayList<Integer>();
        int min = arr[0];
        
        for (int num : arr) {
            if (num < min) {
                min = num;
            }
        }
        
        if (arr.length == 1 && arr[0] == 10) {
            answer.add(-1);
        }
        
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] != min) {
                answer.add(arr[i]);
            }
        }
        return answer;
    }
}

์ฝ”๋“œ ์„ค๋ช…

  • ArrayList<Integer> answer = new ArrayList<Integer>( ) : ๋™์ ๋ฆฌ์ŠคํŠธ ArrayList๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ answer๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • int min = arr[0] : ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ๋ณ€์ˆ˜ min์˜ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ๋ฐฐ์—ด arr์˜ 0๋ฒˆ์งธ ์ธ๋ฑ์Šค ๊ฐ’์œผ๋กœ ์„ค์ •ํ–ˆ๋‹ค.
  • for (int num : arr) { } : ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋ฐฐ์—ด arr์˜ ๊ฐ’๋“ค์„ ํ™•์ธํ•œ๋‹ค.
    • if (num < min) { min = num; } : ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋ณ€์ˆ˜ min๋ณด๋‹ค num ๊ฐ’์ด ์ž‘๋‹ค๋ฉด ๊ฐ’์„ ๊ต์ฒดํ•ด ์ค€๋‹ค.
  • if (arr.length == 1 && arr[0] == 10) { answer.add(-1) } : ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋ฐฐ์—ด arr์˜ ๊ธธ์ด๊ฐ€ 1์ด๊ณ  0๋ฒˆ์งธ ์ธ๋ฑ์Šค ๊ฐ’์ด 10์ด๋ผ๋ฉด ๋™์ ๋ฆฌ์ŠคํŠธ answer์— -1 ๊ฐ’์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
  • for (int i = 0; i < arr.length; i++) { } : ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋ณ€์ˆ˜ i๊ฐ€ 0๋ถ€ํ„ฐ arr.length - 1๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.
    • if (arr[i] != min) { answer.add(arr[i]); } : ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋ฐฐ์—ด arr์˜ i๋ฒˆ์งธ ๊ฐ’์ด ๋ณ€์ˆ˜ min์˜ ๊ฐ’๊ณผ ๊ฐ™์ง€ ์•Š์„ ๊ฒฝ์šฐ์—๋งŒ ๋™์ ๋ฆฌ์ŠคํŠธ answer์— ๊ฐ’์„ ์ถ”๊ฐ€ํ•œ๋‹ค.