[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์‹คํŒจ์œจ (JAVA)

2025. 2. 2. 13:40ยท๐Ÿ’ช Algorithm
๋ฐ˜์‘ํ˜•

๋งํฌ

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

 

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

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

programmers.co.kr

 

๋ฌธ์ œ ์š”์•ฝ

์‹คํŒจ์œจ = ์Šคํ…Œ์ด์ง€์— ๋„๋‹ฌํ–ˆ์œผ๋‚˜ ์•„์ง ํด๋ฆฌ์–ดํ•˜์ง€ ๋ชปํ•œ ํ”Œ๋ ˆ์ด์–ด ์ˆ˜/์Šคํ…Œ์ด์ง€์— ๋„๋‹ฌํ•œ ํ”Œ๋ ˆ์ด์–ด ์ˆ˜

์ „์ฒด ์Šคํ…Œ์ด์ง€ ๊ฐœ์ˆ˜, ๊ฐ ์‚ฌ์šฉ์ž๊ฐ€ ํ˜„์žฌ ๋ฉˆ์ถฐ์žˆ๋Š” ์Šคํ…Œ์ด์ง€ ๋ฒˆํ˜ธ stages๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ์‹คํŒจ์œจ์ด ๋†’์€ ์Šคํ…Œ์ด์ง€๋ถ€ํ„ฐ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๊ธฐ

 

์ œํ•œ

  • ์Šคํ…Œ์ด์ง€์˜ ๊ฐœ์ˆ˜ N์€ 1 ์ด์ƒ 500 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค.
  • stages์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 200,000 ์ดํ•˜์ด๋‹ค.
  • stages์—๋Š” 1 ์ด์ƒ N + 1 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜๊ฐ€ ๋‹ด๊ฒจ์žˆ๋‹ค.
    • ๊ฐ ์ž์—ฐ์ˆ˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํ˜„์žฌ ๋„์ „ ์ค‘์ธ ์Šคํ…Œ์ด์ง€์˜ ๋ฒˆํ˜ธ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
    • ๋‹จ, N + 1 ์€ ๋งˆ์ง€๋ง‰ ์Šคํ…Œ์ด์ง€(N ๋ฒˆ์งธ ์Šคํ…Œ์ด์ง€)๊นŒ์ง€ ํด๋ฆฌ์–ด ํ•œ ์‚ฌ์šฉ์ž๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
  • ๋งŒ์•ฝ ์‹คํŒจ์œจ์ด ๊ฐ™์€ ์Šคํ…Œ์ด์ง€๊ฐ€ ์žˆ๋‹ค๋ฉด ์ž‘์€ ๋ฒˆํ˜ธ์˜ ์Šคํ…Œ์ด์ง€๊ฐ€ ๋จผ์ € ์˜ค๋„๋ก ํ•˜๋ฉด ๋œ๋‹ค.
  • ์Šคํ…Œ์ด์ง€์— ๋„๋‹ฌํ•œ ์œ ์ €๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์Šคํ…Œ์ด์ง€์˜ ์‹คํŒจ์œจ์€ 0์œผ๋กœ ์ •์˜ํ•œ๋‹ค.

 

ํ’€์ด

์Šคํ…Œ์ด์ง€ ๊ฐœ์ˆ˜๋Š” ์ตœ๋Œ€ 500, ์‚ฌ์šฉ์ž ์ˆ˜๋Š” ์ตœ๋Œ€ 200000์ž…๋‹ˆ๋‹ค.

  1. stages๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ฐ ์Šคํ…Œ์ด์ง€๋ณ„ ๋„๋‹ฌํ•œ ํ”Œ๋ ˆ์ด์–ด ์ˆ˜, ๋„๋‹ฌํ–ˆ์œผ๋‚˜ ์•„์ง ํด๋ฆฌ์–ดํ•˜์ง€ ๋ชปํ•œ ํ”Œ๋ ˆ์ด์–ด ์ˆ˜๋ฅผ ์นด์šดํŠธํ•œ๋‹ค.
    1. 1๋ฒˆ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋„๋‹ฌํ•œ ์Šคํ…Œ์ด์ง€๊ฐ€ 4๋ผ๋ฉด, 1~4๋Š” ๋„๋‹ฌํ•œ ์Šคํ…Œ์ด์ง€๊ณ  4๋Š” ๋„๋‹ฌํ–ˆ์œผ๋‚˜ ์•„์ง ํด๋ฆฌ์–ดํ•˜์ง€ ๋ชปํ•œ ์Šคํ…Œ์ด์ง€์ด๋‹ค.
  2. ์ˆœํšŒ๊ฐ€ ๋๋‚œ ํ›„, ์Šคํ…Œ์ด์ง€๋ณ„ ์‹คํŒจ์œจ์„ ๊ณ„์‚ฐํ•œ๋‹ค.
  3. ์‹คํŒจ์œจ์€ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. ์ •๋ ฌ ํ•จ์ˆ˜๋ฅผ ์žฌ์ •์˜ํ•˜์—ฌ, ์‹คํŒจ์œจ์ด ๊ฐ™์œผ๋ฉด ์ž‘์€ ๋ฒˆํ˜ธ์˜ ์Šคํ…Œ์ด์ง€๊ฐ€ ๋จผ์ € ์˜ค๋„๋ก ํ•œ๋‹ค.

์‹คํŒจ์œจ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ณ , ์Šคํ…Œ์ด์ง€ ๋ฒˆํ˜ธ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•˜๋ฏ€๋กœ `<์Šคํ…Œ์ด์ง€ ๋ฒˆํ˜ธ, ์‹คํŒจ์œจ>` ํ˜•ํƒœ์˜ `HashMap`์„ ๋– ์˜ฌ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ฒ˜์Œ์—๋Š” ์‹คํŒจ์œจ์ด ๊ฐ™์€ ํŠน์ˆ˜ํ•œ ๊ฒฝ์šฐ๋ฅผ ์œ„ํ•ด ์ง์ ‘ ์ •๋ ฌ ์ฝ”๋“œ๋ฅผ ์ง๊ตฌํ˜„ํ•ด์•ผ ๋˜๋‚˜ ๊ณ ๋ฏผํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ `sort`ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋Ÿฐ ๊ณ ๋ฏผ์กฐ์ฐจ ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค.

(์ž๋ฐ” api๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ž˜ ํ™œ์šฉํ•  ์ค„ ์•„๋Š” ์‚ฌ๋žŒ์ด ๋˜์ž!)

 

์ฝ”๋“œ

[1์ฐจ] - ํ‹€๋ฆฐ ์ฝ”๋“œ

import java.util.*;
class Solution {
    public int[] solution(int N, int[] stages) {
        int[] nonClear = new int[N+2];
        for(int i=0; i<stages.length; i++){
            nonClear[stages[i]]++;
        }
        
        HashMap<Integer,Double> fail = new HashMap<>();
        int total = stages.length;
        for(int i=1; i<=N; i++){
            fail.put(i, (double)nonClear[i]/total);
            total -= nonClear[i];
        }
        
        return fail.entrySet().stream().sorted((o1,o2) ->
            Double.compare(o2.getValue(),o1.getValue()))
            .mapToInt(e -> e.getKey()).toArray();
    }
}
  • ์ฒ˜์Œ์—๋Š” `์Šคํ…Œ์ด์ง€์— ๋„๋‹ฌํ•œ ์‚ฌ๋žŒ์˜ ์ˆ˜`๊ณผ `์Šคํ…Œ์ด์ง€์— ๋„๋‹ฌํ–ˆ์œผ๋‚˜ ์•„์ง ํด๋ฆฌ์–ดํ•˜์ง€ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ˆ˜`๋ฅผ ๋ณ„๋„์˜ ๋ฐฐ์—ด์— ์ €์žฅํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ•˜์ง€๋งŒ ๋ฐฐ์—ด ํ•œ ๊ฐœ๋งŒ์œผ๋กœ๋„ ์‹คํŒจ์œจ์„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ๊ณ  ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ์•„๋ž˜ ์Šคํ…Œ์ด์ง€๋ถ€ํ„ฐ ์‹คํŒจ์œจ์„ ๊ณ„์‚ฐํ•˜๋ฉด์„œ, ์ด์ „ ์Šคํ…Œ์ด์ง€์—์„œ ํด๋ฆฌ์–ดํ•˜์ง€ ๋ชปํ•œ ์‚ฌ๋žŒ๋“ค์„ total์—์„œ ๋นผ๊ฐ€๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  • ์œ„ ์ฝ”๋“œ๋Š” ์ผ๋ถ€ ํŠน์ • ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์—์„œ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ์•Œ๊ณ  ๋ณด๋‹ˆ, ์‹คํŒจ์œจ์ด 0์ธ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์•„ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜์˜€์Šต๋‹ˆ๋‹ค.
      • `double`์€ 0/0์„ ํ•ด๋ฒ„๋ฆฌ๋ฉด, ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ  `Nan` ๊ฐ’์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.
      • (์ œํ•œ ์‚ฌํ•ญ์€ ๊ผญ ๊ผผ๊ผผํžˆ ์ฝ๋„๋ก ํ•˜์ž!)

 

โœ… HashMap์„ ์‚ฌ์šฉํ•œ ์ฝ”๋“œ

import java.util.*;
class Solution {
    public int[] solution(int N, int[] stages) {
        int[] nonClear = new int[N+2];
        for(int i=0; i<stages.length; i++){
            nonClear[stages[i]]++;
        }
        
        HashMap<Integer,Double> fail = new HashMap<>();
        int total = stages.length;
        for(int i=1; i<=N; i++){
            if(total==0){
                fail.put(i,0.0); 
                continue;
            } 
            fail.put(i, (double)nonClear[i]/total);
            total -= nonClear[i];
        }
        
        return fail.entrySet().stream().sorted((o1,o2) ->
            Double.compare(o2.getValue(),o1.getValue()))
            .mapToInt(e -> e.getKey()).toArray();
    }
}

[์‹œ๊ฐ„ ๋ณต์žก๋„]

  • M: stages์˜ ๊ธธ์ด = ์‚ฌ์šฉ์ž ์ˆ˜
  • N: stage ๊ฐœ์ˆ˜
  • ์ฒซ for๋ฌธ: O(M)
  • ๋‘ ๋ฒˆ์งธ for๋ฌธ: O(N)
  • ๋งˆ์ง€๋ง‰ sorted() : O(N logN)
  • ์ตœ์ข… ์‹œ๊ฐ„ ๋ณต์žก๋„ = O(M)+O(N)+O(N log N) = O(M + N log N)

 

๐Ÿท sorted ํ•จ์ˆ˜

  • `sorted` ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ๋žŒ๋‹ค ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜์—ฌ, ์ •๋ ฌ ๊ธฐ์ค€์„ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.
  • `Double`์˜ `compare` ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ `o2.getValue()`์™€ `o1.getValue()`๋ฅผ ๋น„๊ตํ–ˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ˆœ์„œ๊ฐ€ ๊ต‰์žฅํžˆ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
    • sort ํ•จ์ˆ˜๋Š” ๋น„๊ต ๊ฒฐ๊ณผ๊ฐ€ ์–‘์ˆ˜์ด๋ฉด, o1๊ณผ o2์˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค
    • ๊ทธ๋ฆฌ๊ณ  `compare`ํ•จ์ˆ˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  compare ํ•จ์ˆ˜๋Š” "์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ”์•ผ ํ•  ๋•Œ" ์–‘์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. 
      • o1=3, o2=4๋ผ๊ณ  ํ•ด๋ด…์‹œ๋‹ค. compare(o2, o1)=compare(4,3)=1 (์˜ค๋ฆ„์ฐจ์ˆœ ๊ธฐ์ค€์œผ๋กœ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ”์•ผ ํ•˜๋ฏ€๋กœ 1)
      • compare ๊ฒฐ๊ณผ๊ฐ€ ์–‘์ˆ˜์ด๋ฏ€๋กœ sort ํ•จ์ˆ˜๋Š” o1๊ณผ o2์˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ”์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ o2, o1 = 4,3 ์ˆœ์„œ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ์ด ๋ฉ๋‹ˆ๋‹ค.
  • `sorted((o1, o2) -> Double.compare(o2.getValue(), o1.getValue()))`
    • ์ฝ”๋“œ์˜ ์ด ๋ถ€๋ถ„์„ ๋ง๋กœ ๋‹ค์‹œ ์ •์˜ํ•ด ๋ด…์‹œ๋‹ค.
      • o2์˜ ๊ฐ’์ด o1์˜ ๊ฐ’๋ณด๋‹ค ํฌ๋‹ค๋ฉด `compare`ํ•จ์ˆ˜๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ ๊ธฐ์ค€์— ๋”ฐ๋ผ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ๋ผ๋Š” ์˜๋ฏธ์—์„œ ์–‘์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , `sorted`ํ•จ์ˆ˜๋Š” ๋น„๊ต ๊ฒฐ๊ณผ๊ฐ€ ์–‘์ˆ˜์ด๋ฏ€๋กœ o1๊ณผ o2์˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พผ๋‹ค.
      • “o2์˜ ๊ฐ’์ด o1์˜ ๊ฐ’๋ณด๋‹ค ํฌ๋‹ค๋ฉด, o2๊ฐ€ o1๋ณด๋‹ค ์•ž์— ์˜ค๊ฒŒ ์ •๋ ฌํ•œ๋‹ค(o1๊ณผ o2์˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พผ๋‹ค)”
      • = ํฐ ๊ฐ’์ด ์•ž์— ์˜จ๋‹ค = ๋‚ด๋ฆผ์ฐจ์ˆœ
  • ๊ทธ๋Ÿผ `compare` ํ•จ์ˆ˜์—์„œ ๋‘ ๊ฐ’์ด ๊ฐ™์„ ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์ผ๊นŒ์š”? ๋ฌธ์ œ ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ฅด๋ฉด, ๋‘ ๊ฐ’์ด ๊ฐ™์„ ๋•Œ๋Š” ์ž‘์€ ๋ฒˆํ˜ธ ์Šคํ…Œ์ด์ง€ ๋จผ์ €(ํ‚ค ๊ฐ’ ๊ธฐ์ค€ ์˜ค๋ฆ„์ฐจ์ˆœ) ๋™์ž‘ํ•˜๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • `compare` ํ•จ์ˆ˜๋Š” ๋น„๊ตํ•˜๋Š” ๋‘ ๊ฐ’์ด ๊ฐ™์œผ๋ฉด 0์„ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  `sort` ํ•จ์ˆ˜๋Š” 0์— ๋Œ€ํ•ด์„œ๋Š” ๊ธฐ์กด ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
    • ์•ž์„œ fail ๊ฐ’๋“ค์„ ๊ณ„์‚ฐํ•˜์—ฌ HashMap์— ์‚ฝ์ž…ํ•  ๋•Œ ์Šคํ…Œ์ด์ง€ ๋ฒˆํ˜ธ๋ฅผ ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€ํ•˜๋ฉฐ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์กด ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜๋ฉด ๊ฒฐ๊ตญ ์Šคํ…Œ์ด์ง€ ๋ฒˆํ˜ธ ๊ธฐ์ค€ ์˜ค๋ฆ„์ฐจ์ˆœ์„ ์œ ์ง€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
    • ๋”ฐ๋ผ์„œ, ์ถ”๊ฐ€์ ์œผ๋กœ ๋‘ ๊ฐ’์ด ๊ฐ™์„ ๋•Œ์— ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

compare ํ•จ์ˆ˜
compare ํ•จ์ˆ˜ ์ •์˜

 


โœ… ๋‹ค๋ฅธ ๋ฐฉ๋ฒ• - HashMap ๋Œ€์‹  Class ์ •์˜ํ•ด์„œ ํ™œ์šฉ

์ธ๋ฑ์Šค์™€ ์‹คํŒจ์œจ์„ ํ•˜๋‚˜๋กœ ๋ฌถ๊ธฐ ์œ„ํ•ด ์ด์ „์—๋Š” `HashMap`์„ ํ™œ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ `HashMap`๊ณผ `compare` ํ•จ์ˆ˜์˜ ๋ฌธ๋ฒ•์ด ์ž˜ ๊ธฐ์–ต๋‚˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋Ÿด ๋•Œ๋Š” ๋ณ„๋„์˜ `Class`๋ฅผ ๋”ฐ๋กœ ์ •์˜ํ•ด์„œ ์ •๋ ฌ ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

import java.util.*;
class Solution {
    public int[] solution(int N, int[] stages) {
        int[] nonClear = new int[N+2];
        for(int i=0; i<stages.length; i++){
            nonClear[stages[i]]++;
        }
        
        ArrayList<Stage>failStages = new ArrayList<>();
        int total = stages.length;
        for(int i=1; i<=N; i++){
            if(total==0){
                failStages.add(new Stage(i,0.0));
                continue;
            } 
            failStages.add(new Stage(i,(double)nonClear[i]/total));
            total -= nonClear[i];
        }
        Collections.sort(failStages);
        return failStages.stream().mapToInt(s -> s.id).toArray();
    }
    
    class Stage implements Comparable<Stage> {
		    public int id;
		    public double fail;
		    
		    public Stage(int id, double fail){
				    this.id = id;
				    this.fail = fail;
		    }
		    
		    @Override
            public int compareTo(Stage s){
                if(fail == s.fail){
                    if(id < s.id) return -1;
                    return 1;
                }
                if(fail>s.fail) return -1;
                return 1;
            }
    }
}
  • ์ •๋ ฌ ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด, ๋‚ด๊ฐ€ ์ •์˜ํ•œ ํด๋ž˜์Šค๊ฐ€ `Comparable`์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด `compareTo`ํ•จ์ˆ˜๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œํ•˜์—ฌ ์ง์ ‘ ์ •๋ ฌ ๊ธฐ์ค€์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • `compareTo`ํ•จ์ˆ˜๋Š” ๋‚˜ ์ž์‹  ๊ฐ์ฒด์™€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ๋œ ๊ฐ์ฒด๋ฅผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.
    • ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฐ˜ํ™˜๊ฐ’์ด 1์ด๋ฉด ๊ฐ์ฒด์˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พผ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
๋ฐ˜์‘ํ˜•

'๐Ÿ’ช Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ด„ํ˜ธ ํšŒ์ „ํ•˜๊ธฐ (JAVA)  (2) 2025.02.04
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ฐฉ๋ฌธ ๊ธธ์ด (JAVA)  (2) 2025.02.03
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ–‰๋ ฌ์˜ ๊ณฑ์…ˆ (JAVA)  (1) 2025.02.01
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ชจ์˜๊ณ ์‚ฌ (JAVA)  (1) 2025.01.30
'๐Ÿ’ช Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ด„ํ˜ธ ํšŒ์ „ํ•˜๊ธฐ (JAVA)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ฐฉ๋ฌธ ๊ธธ์ด (JAVA)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ–‰๋ ฌ์˜ ๊ณฑ์…ˆ (JAVA)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ชจ์˜๊ณ ์‚ฌ (JAVA)
dev-heyjin
dev-heyjin
  • dev-heyjin
    ๊ฐœ๋ฐœ ๊ธฐ๋ก
    dev-heyjin
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (56)
      • ๐ŸŽฏ Programming (8)
      • ๐Ÿ’ช Algorithm (16)
      • โš™๏ธ CS (31)
        • ๋„คํŠธ์›Œํฌ (15)
        • ์šด์˜์ฒด์ œ (15)
        • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    DB
    RDS
    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
    ํ•ดํ‚น
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
dev-heyjin
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์‹คํŒจ์œจ (JAVA)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”