์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ์ฟ ํกDB
- ํ๋ฐฉ์ฟผ๋ฆฌ
- ๋ฐฑ์ค9012
- java
- ์
- ๋ฐฑ์ค1874
- stream
- ๋ฐฑ์ค11053 #ํ์ด์ฌ #python
- ์ฟ ํกERD
- StringBuilder
- ๋ฐฑ์ค9093
- ๋ฐฐ์ด
- ์ฐ์ฐ์
- ๋ฐ์ดํฐํ์
- ์คํ์์ด
- ์คํ
- ๋ฌธ์์ด
- ์ฐ
- StringBuffer
- ์๋ฐ
- ๋
- ์คํธ๋ฆผ
- Today
- Total
Tech Log ๐ ๏ธ
ํฌ ํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ์ด๋ ? (ํ๋ก๊ทธ๋๋จธ์ค - ์ฐ์๋ ๋ถ๋ถ ์์ด์ ํฉ) ๋ณธ๋ฌธ
ํฌ ํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ์ด๋ ? (ํ๋ก๊ทธ๋๋จธ์ค - ์ฐ์๋ ๋ถ๋ถ ์์ด์ ํฉ)
sehaan 2023. 5. 10. 20:55ํฌํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ
- ๋ฆฌ์คํธ์ ์์ฐจ์ ์ผ๋ก ์ ๊ทผํด์ผ ํ ๋ ๋ ๊ฐ์ ์ (์์์ , ๋์ )์ ์์น๋ฅผ ๊ธฐ๋กํ๋ฉด์ ์ฒ๋ฆฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
- ์์์ ๊ณผ ๋์ ์ผ๋ก ์ ๊ทผํ ๋ฐ์ดํฐ์ ๋ฒ์๋ฅผ ํํํ ์ ์๋ค.
์๋ฅผ ๋ค์ด, ํด๋น ์์ด์์ ํฉ์ด 5์ธ ๋ถ๋ถ ์์ด์ ๊ฐ์๋ฅผ ์ฐพ๋๋ค๊ณ ์๊ฐํด๋ณด์
1 | 2 | 3 | 2 | 5 |
์์ ํ์์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์๋ ์์ง๋ง ๋๋ฌด ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค๋ ๋จ์ ์ด ์๋ค.
๋ฐ๋ผ์ ์ด๋ ํฌํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
ํฌํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค.
1. ์ฒ์์๋ ์์์ ๊ณผ ๋์ ๋ชจ๋ 0์์ ์์ํ๋ค.
1(start,end) | 2 | 3 | 2 | 5 |
2. ํฉ์ด ๋ชฉํ๊ฐ๊ณผ ๊ฐ์ผ๋ฉด ์นด์ดํธํ๋ค.
3. ๋ง์ฝ ๋ชฉํ๊ฐ๋ณด๋ค ๋ถ๋ถ์์ด์ ํฉ์ด ์๋ค๋ฉด end ์ธ๋ฑ์ค๋ฅผ 1 ์ฆ๊ฐ์ํจ๋ค.
1(start) | 2(end) | 3 | 4 | 5 |
3-1. ํ์ฌ ๋ถ๋ถ ์์ด์ ๊ฐ์ 3์ด๋ฏ๋ก end ์ธ๋ฑ์ค๋ฅผ 1๋งํผ ๋ ์ฆ๊ฐ์ํฌ ์ ์๋ค.
๊ทธ๋ ๊ฒ๋๋ฉด ๋ถ๋ถ ์์ด์ ๊ฐ์ 6์ด ๋๋ค.
4. ๋ง์ฝ ๋ชฉํ๊ฐ๋ณด๋ค ๋ถ๋ถ์์ด์ ํฉ์ด ํฌ๋ค๋ฉด start ์ธ๋ฑ์ค๋ฅผ 1๋งํผ ์ฆ๊ฐ์ํจ๋ค.
1 | 2(start) | 3(end) | 4 | 5 |
5. ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ํ์ธ ํ ๋๊น์ง 2~4 ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
์ด๋ ๊ฒ ํจ์ผ๋ก์จ ํฉ์ด 5๊ฐ ๋๋ ๋ถ๋ถ ์์ด์ ๋ชจ๋ ๊ตฌํ ์ ์๋ค !
ํ๋ก๊ทธ๋๋จธ์ค - ์ฐ์๋ ๋ถ๋ถ ์์ด์ ํฉ
ํฌ ํฌ์ธํฐ๋ฅผ ํ์ฉํ์ฌ ํ ์ ์๋ ๋ํ์ ์ธ ๋ฌธ์ ์ด๋ค
๋ถ์
ํฉ์ด k ๊ฐ ๋๋ ๋ถ๋ถ ์์ด์ ์์ ์ธ๋ฑ์ค์ ๋ง์ง๋ง ์ธ๋ฑ์ค๋ฅผ ๊ตฌํด์ผ ํ๋ค.
๋ฐ๋ผ์ ํฌํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ๋ฉด ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๊ตฌํ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ธ๋ฑ์ค์ ๊ธธ์ด๋ฅผ ๋น๊ตํด์ ๊ฐ์ฅ ์ต์ ์ผ ๋๋ฅผ ๋ฐํํด์ฃผ๋ฉด ๋๋ค.
์ฝ๋
class Solution {
public int[] solution(int[] sequence, int k) {
int min = Integer.MAX_VALUE;
int end = 0;
int num = sequence.length;
int sum = 0;
int[] answer = new int[2];
for(int start=0;start<num;start++){
while(sum < k && end < num){
sum += sequence[end];
end ++;
}
if(sum == k && min > (end-1) - start) {
min = (end-1) - start;
answer[0] = start;
answer[1] = end-1;
}
sum -= sequence[start];
}
return answer;
}
}
"์ด๊ฒ์ด ์ทจ์ ์ ์ํ ์ฝ๋ฉ ํ ์คํธ๋ค with ํ์ด์ฌ" ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ์ ์ํ์์ต๋๋ค.
https://www.youtube.com/watch?v=ttLRltNDiCo
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] LEVEL2 ๊ฑฐ๋ฆฌ๋๊ธฐ ํ์ธํ๊ธฐ (Java) (0) | 2023.05.24 |
---|---|
์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ด๋? (0) | 2023.04.23 |
[๋ฐฑ์ค] 14889๋ฒ ์คํํธ์ ๋งํฌ ์๋ฐ(๋ฐฑํธ๋ํน , ๋นํธ๋ง์คํน) (0) | 2023.03.28 |
[๋ฐฑ์ค] 1991๋ฒ ํธ๋ฆฌ์ํ JAVA (0) | 2023.03.26 |
[๋ฐฑ์ค] 11723 ์งํฉ JAVA (2) | 2023.03.23 |