๐
2025-08-25
๋ฌธ์ ๋งํฌ
๋ฌธ์ ์ค๋ช
๋น๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ์์ด์ด ์ฃผ์ด์ง ๋, ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ถ๋ถ ์์ด์ ์ฐพ์ผ๋ ค๊ณ ํฉ๋๋ค.
๊ธฐ์กด ์์ด์์ ์์์ ๋ ์ธ๋ฑ์ค์ ์์์ ๊ทธ ์ฌ์ด์ ์์๋ฅผ ๋ชจ๋ ํฌํจํ๋ ๋ถ๋ถ ์์ด์ด์ด์ผ ํฉ๋๋ค.
๋ถ๋ถ ์์ด์ ํฉ์ k์
๋๋ค.
ํฉ์ด k์ธ ๋ถ๋ถ ์์ด์ด ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ ๊ธธ์ด๊ฐ ์งง์ ์์ด์ ์ฐพ์ต๋๋ค.
๊ธธ์ด๊ฐ ์งง์ ์์ด์ด ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ ์์ชฝ(์์ ์ธ๋ฑ์ค๊ฐ ์์)์ ๋์ค๋ ์์ด์ ์ฐพ์ต๋๋ค.
์์ด์ ๋ํ๋ด๋ ์ ์ ๋ฐฐ์ด sequence์ ๋ถ๋ถ ์์ด์ ํฉ์ ๋ํ๋ด๋ ์ ์ k๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ถ๋ถ ์์ด์ ์์ ์ธ๋ฑ์ค์ ๋ง์ง๋ง ์ธ๋ฑ์ค๋ฅผ ๋ฐฐ์ด์ ๋ด์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ด๋ ์์ด์ ์ธ๋ฑ์ค๋ 0๋ถํฐ ์์ํฉ๋๋ค.
์ ํ์ฌํญ
์ฒ์ ํ์ด
startIdx๋ฅผ ์ฐพ์ ๋๋ง๋ค endIdx๋ฅผ ๋ค์ ์ฐพ๋ ์ด์ค for๋ฌธ ๊ตฌ์กฐ๋ผ ์๊ฐ์ด๊ณผ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
#include <vector>
using namespace std;
vector<int> solution(vector<int> sequence, int k) {
vector<int> answer(2,0);
int startIdx = 0;
while(startIdx<sequence.size())
{
long long sum=0;
int endIdx = 0;
for(int i=startIdx; i<sequence.size(); i++)
{
sum+=sequence[i];
if(sum==k) { endIdx = i; break; }
else if(sum>k) break;
}
if(sum == k)
{
if(answer[1]==0 || answer[1]-answer[0]>endIdx-startIdx)
{
answer[0]=startIdx; answer[1]=endIdx;
}
}
startIdx++;
}
return answer;
}
์ต์ข
ํ์ด
sum์ ๋ฐ๋ผ startIdx, endIdx๋ฅผ ์ด๋ํ๋ ๋ฐฉ์์ผ๋ก ์๊ฐ ๋ณต์ก๋๋ฅผ ์ค์๋ค.
#include <vector>
using namespace std;
vector<int> solution(vector<int> sequence, int k) {
int size = sequence.size();
vector<int> answer={0, size-1};
int startIdx = 0;
int endIdx = 0;
long long sum=sequence[0];
while(startIdx<size && endIdx<size)
{
if(sum == k)
{
if(answer[1]-answer[0]>endIdx-startIdx)
{
answer[0]=startIdx;
answer[1]=endIdx;
}
sum-=sequence[startIdx++];
}
else if (sum<k)
{
endIdx++;
if(endIdx<size)
sum+=sequence[endIdx];
}
else
{
sum-=sequence[startIdx++];
}
}
return answer;
}
ํญ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๋จผ์ ๊ณ์ฐํ๊ณ ํ์ด๋ณด๋ ์ต๊ด์ ๊ฐ์ ธ์ผ๊ฒ ๋ค.
๋ด์ผ๋ฐฐ์์บ ํ ๋ฉํฐํ๋ ์ด์ด ๊ฒ์ ๊ฐ๋ฐ ๊ฐ์์์ ๋๋ฒ๊น
๋ก๊ทธ๋ก ๋ฐ๋ ์๋ฒ์ผ ๋ ์คํ๋๋ ํจ์ ์์๋ฅผ ํ์ธํด๋ดค๋๋ ์ด์ ์ ์ด๋ก ์ผ๋ก ๋ฐฐ์ ๋ NetConnection์ด๋ NetRole ๋ถ๋ถ์ด ์ข ๋ ๋ช
ํํ๊ฒ ์ดํด๋๋ค.
์ธ๋ฆฌ์ผ ํ์คํ 1์ผ์ฐจ์์ ์ฃผ๋ก ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ ์ชฝ์ ๋ค์๋๋ฐ ์ํธ ๋ถ๋ถ๋ ํ ๋ฒ ์ฒ์๋ถํฐ ๋ค์ด๋ณด๊ณ ์ถ์๋ค. ๋์ค์ ์์์ด ๋ค ๊ณต๊ฐ๋์ผ๋ฉด ์ข๊ฒ ๋ค.
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค - ์ฐ์๋ ๋ถ๋ถ ์์ด์ ํฉ