-
[BaekJoon] 1806๋ฒ ๋ถ๋ถํฉSW Test/BaekJoon 2021. 8. 22. 20:46๋ฐ์ํ
- ์ด ๋ฌธ์ ๋ C/C++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค.
๋ฌธ์
์์
ํ์ด
- ๋ถ๋ถํฉ์ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ 3์ค for๋ฌธ์ ์ด์ฉํด์ ํ๋์ฉ ๋ง์ ์ ํ์ฌ s๋ฅผ ๋์๋์ง ํ์ธํ๋ ๋ฐฉ๋ฒ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ๋ ์ฌ๋ฆด ์ ์์ต๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ๋ถ๋ถํฉ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ์กฐ๊ธ ๋ฐฐ์ฐ์ ๋ถ์ด๋ผ๋ฉด ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ค์ด ์ฒ์๋ถํฐ ํด๋น ์ธ๋ฑ์ค๊น์ง์ ์์๋ค์ ํฉ์ ๋ํ๋ด๋ ๋ฐฐ์ด์ ๋ง๋ญ๋๋ค. ์ดํ 2์ค for๋ฌธ์ ์ด์ฉํ์ฌ sum(j) - sum(i)๊ฐ s๊ฐ ๋์๋์ง ํ์ธํ๋ฉด ์๊ฐ๋ณต์ก๋๋ฅผ ๋ฎ์ถ ์ ์์ต๋๋ค.
- ํ์ง๋ง N์ ํฌ๊ธฐ๋ 10๋ง์ด๋ผ O(n2)์ด์ฌ๋ ์๊ฐ์ด๊ณผ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ํฌ ํฌ์ธํฐ ๋ผ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์ ํ์ด์ผ ํฉ๋๋ค.
- ํฌ ํฌ์ธํฐ ๋ฅผ ์ฌ์ฉํ๋ฉด O(N)์ผ๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค.
#include<iostream> #include<vector> #include<algorithm> using namespace std; int main(){ int arr[100000]; int n,len; cin>>n>>len; for(int i=0;i<n;i++){ cin>>arr[i]; } int result = 1000000; int value = arr[0]; int s = 0; int e = 0; while(s!=n && e!=n){ if(value>=len){ result = min(result, e-s+1); value-=arr[s++]; }else{ value+=arr[++e]; } } if(result == 1000000){ result = 0; } cout<<result; }
- ์ถ๊ฐ๋ก ๊ถ๊ธํ ์ ์ด๋ ์์ ํ ๋ถ๋ถ ์์ผ๋ฉด ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์.
๋ฐ์ํ'SW Test > BaekJoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BaekJoon] 18870๋ฒ ์ขํ์์ถ (0) 2021.08.22 [BaekJoon] 2230๋ฒ ์๊ณ ๋ฅด๊ธฐ (0) 2021.08.22 [BeakJoon] 5430๋ฒ: AC (0) 2021.07.22 [BaekJoon] 17298๋ฒ : ์คํฐ์ (0) 2021.07.19 [BaekJoon] 1697๋ฒ : ์จ๋ฐ๊ผญ์ง (0) 2021.04.23