Algorithm/Programmers

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์‚ผ๊ฐํ˜•์˜ ์™„์„ฑ์กฐ๊ฑด(1), ๋ฐฐ์—ด์˜ ์œ ์‚ฌ๋„

_silver 2025. 3. 6. 21:45


๋ฌธ์ œ 1.  ์‚ผ๊ฐํ˜•์˜ ์™„์„ฑ์กฐ๊ฑด(1)
โ˜‘๏ธ ๋ฌธ์ œ ๋ฐ”๋กœ ํ’€๊ธฐ ํด๋ฆญ

 

๋‚˜์˜ ๋ฌธ์ œ ํ’€์ด(1)
class Solution {
    public int solution(int[] sides) {
        int x = sides[0];
        int y = sides[1];
        int z = sides[2];
        
        if(x+y > z && x+z > y && y+z > x) {
            return 1;
        } else {
            return 2;
        }
        
    }
}

 

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

1. ์„ธ๋ณ€์˜ ๊ธธ์ด๋ฅผ sides ๋ฐฐ์—ด์—์„œ ๊ฐ€์ ธ์˜จ๋‹ค.

 - sides[0] : x

 - sides[1] : y

 - sides[2] : z

2. ์‚ผ๊ฐํ˜• ์กฐ๊ฑด ๊ฒ€์‚ฌ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

 - x+y > z && x+z > y && y+z > x

 - ๋ชจ๋“  ๋ณ€์˜ ์กฐํ•ฉ์ด ๊ฐ€์žฅ ๊ธด ๋ณ€๋ณด๋‹ค ์ปค์•ผ ์‚ผ๊ฐํ˜• ๊ฐ€๋Šฅ

 - ๋งŒ์กฑํ•˜๋ฉด 1 ๋ฐ˜ํ™˜(์‚ผ๊ฐํ˜• ๊ฐ€๋Šฅ), ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด 2 ๋ฐ˜ํ™˜(์‚ผ๊ฐํ˜• ๋ถˆ๊ฐ€๋Šฅ)

 

๋‚˜์˜ ๋ฌธ์ œ ํ’€์ด(2)
import java.util.Arrays;

class Solution {
    public int solution(int[] sides) {
        
        // ๋ฒ ์—ด์„ ์ •๋ ฌํ•˜์—ฌ ๊ฐ€์žฅ ๊ธด ๋ณ€ ์ฐพ๊ธฐ
        Arrays.sort(sides);       
        
        // ๊ฐ€์žฅ ์งง์€ ๋‘ ๋ณ€์˜ ํ•ฉ์ด ๊ฐ€์žฅ ๊ธด ๋ณ€๋ณด๋‹ค ํฌ๋ฉด ์‚ผ๊ฐํ˜• ๊ฐ€๋Šฅ
        if(sides[0] + sides[1] > sides[2]) {
            return 1;
        } else {
            return 2;
        }
        
    }
}
์ฝ”๋“œ ์„ค๋ช…

1. ๋ฐฐ์—ด์„ ์ •๋ ฌํ•œ๋‹ค. โžก๏ธ Arrays.sort(sides);

 - sides[0] <= sides[1] <= sides[2]๋กœ ์ •๋ ฌ ๋œ๋‹ค.

 - ๋”ฐ๋ผ์„œ sides[2]๊ฐ€ ํ•ญ์ƒ ๊ฐ€์žฅ ๊ธด๋ฒˆ์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.

2. ์‚ผ๊ฐํ˜• ์กฐ๊ฑด ๊ฒ€์‚ฌ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

 - sides[0] + sides[1] > sides[2]

 - ๊ฐ€์žฅ ์งง์€ ๋‘ ๋ณ€์˜ ํ•ฉ์ด ๊ฐ€์žฅ ๊ธด ๋ณ€๋ณด๋‹ค ํฌ๋ฉด ์‚ผ๊ฐํ˜•์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 - ๋งŒ์กฑํ•˜๋ฉด 1 ๋ฐ˜ํ™˜(์‚ผ๊ฐํ˜• ๊ฐ€๋Šฅ), ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด 2 ๋ฐ˜ํ™˜(์‚ผ๊ฐํ˜• ๋ถˆ๊ฐ€๋Šฅ)

 


 

 

๋ฌธ์ œ 2.  ๋ฐฐ์—ด์˜ ์œ ์‚ฌ๋„
โ˜‘๏ธ ๋ฌธ์ œ ๋ฐ”๋กœ ํ’€๊ธฐ ํด๋ฆญ

 

๋‚˜์˜ ๋ฌธ์ œ ํ’€์ด
import java.util.HashSet;

class Solution {
    public int solution(String[] s1, String[] s2) {

        // s1๋ฐฐ์—ด์„ HashSet์— ์ €์žฅ
        HashSet<String> set = new HashSet<>();
        
        // s1์˜ ๋ฐฐ์—ด์˜ ์›์†Œ๋ฅผ HashSet์— ์ถ”๊ฐ€ (str: s1์˜ ๊ฐœ๋ณ„ ์š”์†Œ)
        for(String str : s1) {
            set.add(str);
        }
        
        // count๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋„๋ก ์ดˆ๊ธฐํ™”
        int count = 0;
        
        for(String str : s2) {
            // ๋งŒ์•ฝ s2 ๋ฐฐ์—ด์˜ ์›์†Œ๊ฐ€ s1์˜ ์›์†Œ๊ฐ€ ์กด์žฌํ•˜๋ฉด count ์ฆ๊ฐ€
            if(set.contains(str)) {
                count ++;
            }
        }
        
        return count;
        
    }
}

 

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

1. ๋ฐฐ์—ด์˜ ๊ณตํ†ต ์š”์†Œ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ HashSet์„ ์‚ฌ์šฉํ•œ๋‹ค.

 - HashSet์€ ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š๊ณ , ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

 - contains() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ๋ฌธ์ž์—ด์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

2. ์ฒซ ๋ฒˆ์งธ ๋ฐฐ์—ด(s1)์„ HashSet์— ์ €์žฅํ•œ๋‹ค.

3. ๋‘ ๋ฒˆ์งธ ๋ฐฐ์—ด(s2)๋„ for๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ s1์— ์กด์žฌํ•˜๋Š” ์›์†Œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

 - s2์˜ ๊ฐ ์›์†Œ๊ฐ€ s1์— ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋ฉด, ์นด์šดํŠธ๋ฅผ ์ฆ๊ฐ€ ์‹œํ‚จ๋‹ค.

4. ์ตœ์ข…์ ์œผ๋กœ count๋œ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.