[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์—ฐ์†๋œ ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ - ํˆฌ ํฌ์ธํ„ฐ

2024. 8. 14. 18:30ยท๐Ÿ’ป Algorithms/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[ ๋ฌธ์ œ๋งํฌ ]

https://school.programmers.co.kr/learn/courses/30/lessons/178870

 

๐Ÿšฉ ์กฐ๊ฑด

  1. ๋น„๋‚ด๋ฆผ์ฐจ์ˆœ(=์˜ค๋ฆ„์ฐจ์ˆœ) ์ˆ˜์—ด sequence์™€ k๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, ํ•ฉ์ด k์ธ ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ์ฐพ์•„๋ผ
  2. ๋ถ€๋ถ„ ์ˆ˜์—ด ์ค‘ ๊ฐ€์žฅ ๊ธธ์ด๊ฐ€ ์งง์€ ๊ฒƒ์„ ์ฐพ๋˜, ๊ธธ์ด๊ฐ€ ๊ฐ™์œผ๋ฉด ๋จผ์ € ๋“ฑ์žฅํ•˜๋Š” ๊ฒƒ์„ ์ฐพ์•„๋ผ
  3. 5 ≤ sequence์˜ ๊ธธ์ด ≤ 1,000,000
  4. 5 ≤ k ≤ 1,000,000,000 / k๋Š” ํ•ญ์ƒ ๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ์œผ๋กœ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ์ •์ˆ˜

 

 

๐Ÿšฉ ์ ‘๊ทผ

for๋ฌธ์œผ๋กœ ์•ž ์›์†Œ๋ถ€ํ„ฐ ๋”ํ•ด๋‚˜๊ฐ€๋‹ค๊ฐ€ ํ•ฉ์ด k๋ณด๋‹ค ์ปค์ง€๋ฉด ์•ž ์›์†Œ๋ฅผ ์ œ๊ฑฐํ•ด๋‚˜๊ฐ€๋ฉฐ ๋‹ต์„ ์ฐพ์ž!

=> ์ด๊ฒŒ ํˆฌ ํฌ์ธํ„ฐ์˜ ๊ฐœ๋…

 

 

๐Ÿšฉ ์‹œํ–‰์ฐฉ์˜ค

  • sum>k ์ผ ๋•Œ ์ œ์ผ ์•ž ์›์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š”๋ฐ, ์ด ๋•Œ sum==k ๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์ ์„ ๊ฐ„๊ณผํ•จ. ๊ทธ๋ž˜์„œ ์ œ๊ฑฐํ•œ ํ›„ sum==k ์ด๋ฉด ๊ธธ์ด๋ฅผ ๋น„๊ตํ•˜๊ณ  answer์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋ณต๋ถ™ํ•จ. (๋น„ํšจ์œจ์ ์ด์ง€๋งŒ..)
  • ํ…Œ์ŠคํŠธ 16, 25์—์„œ ์‹คํŒจํ•จ. ์ฒ˜์Œ์—” size๋ฅผ 1,000,000์œผ๋กœ ์ดˆ๊ธฐํ™”ํ–ˆ๊ธฐ ๋•Œ๋ฌธ... sequence์˜ ์ตœ๋Œ€ ๊ธธ์ด๊ฐ€ 1,000,000์ด๋ฏ€๋กœ ์ •๋‹ต์œผ๋กœ 1,000,000๋„ ๊ฐ€๋Šฅํ•จ. ๋”ฐ๋ผ์„œ ๋ฐ˜๋“œ์‹œ ์ •๋‹ต๋ณด๋‹ค ํฐ ์ˆ˜์—ฌ์•ผ ํ•˜๋Š” size๋Š” 1,000,000๋ณด๋‹ค ์ปค์•ผ ํ•จ.

 

 

๐Ÿ’ป ์ฝ”๋“œ (C++)

#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<int> sequence, int k) {
    vector<int> answer;

    int sum=0; int start=0; int end=-1; int size=1000001;
    for(int i=0; i<sequence.size(); i++){
        sum += sequence[i];
        end = i;

        if(sum<k){
            continue;
        }else if(sum>k){
            while(sum>k){
                sum-=sequence[start];
                start++;
            }
            if(sum==k){
                if(end+1-start<size){
                    answer.clear();
                    answer.push_back(start);
                    answer.push_back(end);
                    size = end+1-start;
                }
            }
        }else{
            if(end+1-start<size){
                answer.clear();
                answer.push_back(start);
                answer.push_back(end);
                size = end+1-start;
            }
        }
    }

    return answer;
}

'๐Ÿ’ป Algorithms > ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’ - ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ?  (1) 2024.09.20
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‹ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ - ํ•ด์‹œ  (0) 2024.09.20
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋งˆ๋ฒ•์˜ ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ - ์ˆ˜ํ•™  (0) 2024.08.23
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋’ค์— ์žˆ๋Š” ํฐ ์ˆ˜ ์ฐพ๊ธฐ - ์Šคํƒ  (0) 2024.08.20
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‘ ์› ์‚ฌ์ด์˜ ์ •์ˆ˜ ์Œ - ์ˆ˜ํ•™  (0) 2024.08.17
'๐Ÿ’ป Algorithms/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‹ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ - ํ•ด์‹œ
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋งˆ๋ฒ•์˜ ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ - ์ˆ˜ํ•™
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋’ค์— ์žˆ๋Š” ํฐ ์ˆ˜ ์ฐพ๊ธฐ - ์Šคํƒ
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‘ ์› ์‚ฌ์ด์˜ ์ •์ˆ˜ ์Œ - ์ˆ˜ํ•™
์ ๋„
์ ๋„
  • ์ ๋„
    ๋„์ 
    ์ ๋„
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (30)
      • ๐Ÿ’ป Algorithms (28)
        • ๋ฐฑ์ค€ (22)
        • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (6)
      • ๐Ÿ”Ž Deep Learning (0)
      • ๐Ÿ’ฅ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… (1)
      • ๐Ÿ•น Unity (1)
      • ๐Ÿฅ” ์ž‰ํ…… (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • Blog
    • Github
    • Velog
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
์ ๋„
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์—ฐ์†๋œ ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ - ํˆฌ ํฌ์ธํ„ฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”