[프로그래머스] 숫자의 표현

hamsteak·2023년 9월 15일
0

ps

목록 보기
7/39

nn과 일치하는 자연수의 연속합을 구하는 문제.
nn의 크기가 최대 10410^4이기 때문에 O(n2)O(n^2)인 브루트포스로 구현해도 시간초과가 발생하지 않지만 투 포인터를 이용하면 더 빠르게 O(n)O(n)으로 해결가능하다.

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

cpp code

#include <string>

using namespace std;


int solution(int n) {
    int answer = 0;
    int l = 1, r = 1;
    int sum = 1;
    while (l <= r && r <= n) {
        if (sum <= n) {
            if (sum == n) answer++;
            sum += ++r;
        }
        if (sum > n) sum -= l++;
    }
    return answer;
}
profile
안녕하세요

0개의 댓글