๊ธฐ๋ก๋ฐฉ

Lv.2 : ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด ํ•ฉ์˜ ๊ฐœ์ˆ˜ ๋ณธ๋ฌธ

CodingTest/Java

Lv.2 : ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด ํ•ฉ์˜ ๊ฐœ์ˆ˜

Soom_1n 2023. 9. 22. 08:57

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

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

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • ์ž…๋ ฅ๋œ ์›ํ˜• ์ˆ˜์—ด์—์„œ 1๋ถ€ํ„ฐ ์ˆ˜์—ด์˜ ๊ธธ์ด๊นŒ์ง€์˜ ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด๋“ค์˜ ํ•ฉ์„ ๊ตฌํ•œ๋‹ค.
  • ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ณ  ํ•ฉ๋“ค์˜ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๐Ÿ”ธ ๋ฌธ์ œ ํ’€์ด ๐Ÿ”ธ

  • Set ์ž๋ฃŒํ˜•์— ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ์„ ๋„ฃ์–ด์„œ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ณ , Set์˜ ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

import java.util.Set;
import java.util.HashSet;

class Solution {
    public int solution(int[] elements) {
        Set<Integer> set = new HashSet<>();
        
        for(int i = 1; i <= elements.length; i++) { // i : ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ๊ธธ์ด
            
            for(int j = 0; j < elements.length; j++) { // j : ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ์‹œ์ž‘ ์ธ๋ฑ์Šค
                
                int sum = 0; // ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ
                int idx = j;
                
                for(int k = 0; k < i; k++) { // j๋ถ€ํ„ฐ i๊ธธ์ด์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด ํ•ฉ ๊ณ„์‚ฐ
                    sum += elements[idx++ % elements.length];
                }
                
                set.add(sum);
                
            }
            
        }
        
        return set.size();
    }
}

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ๊ธธ์ด i๋ฅผ 1๋ถ€ํ„ฐ ์ˆ˜์—ด elements์˜ ๊ธธ์ด ๋งŒํผ ๋ฐ˜๋ณตํ•ด ๊ณ„์‚ฐํ•œ๋‹ค.
  • ์‹œ์ž‘ ์ธ๋ฑ์Šค๋Š” ์ˆ˜์—ด ์›์†Œ ํ•˜๋‚˜์”ฉ ํ™•์ธํ•ด ๊ณ„์‚ฐํ•œ๋‹ค.
  • ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ์„ ๊ณ„์‚ฐํ•ด Set์— ์ €์žฅํ•œ๋‹ค.
  • Set์˜ ํฌ๊ธฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ๋‹ค๋ฅธ ํ’€์ด๋ฅผ๋ณด๋‹ˆ, ์ธ๋ฑ์Šค ๋ณ€์ˆ˜ idx๋ฅผ ๋”ฐ๋กœ ์„ ์–ธ ํ•  ํ•„์š” ์—†์ด k์˜ ์‹œ์ž‘์„ j, ์กฐ๊ฑด์„ j + i๋กœ ํ•˜๋ฉด ๋์—ˆ๋‹ค.
    • ์ฒ˜์Œ์—” while๋ฌธ์œผ๋กœ ์ƒ๊ฐํ–ˆ๋‹ค๊ฐ€ for๋ฌธ์œผ๋กœ ๋ฐ”๊พธ๋ฉด์„œ ๋ฆฌํŒฉํ† ๋ง ํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

728x90

'CodingTest > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Lv.2 : ํ• ์ธ ํ–‰์‚ฌ  (0) 2023.10.01
Lv.2 : n^2 ๋ฐฐ์—ด ์ž๋ฅด๊ธฐ  (0) 2023.09.23
Lv.2 : ๊ทค ๊ณ ๋ฅด๊ธฐ  (0) 2023.09.18
Lv.2 : ๋ฉ€๋ฆฌ ๋›ฐ๊ธฐ  (0) 2023.09.17
Lv.2 : N๊ฐœ์˜ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜  (0) 2023.09.16