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