-
[프로그래머스/Level 2] 숫자의 표현 (C++)알고리즘 문제풀이/프로그래머스 2020. 11. 9. 14:02
programmers.co.kr/learn/courses/30/lessons/12924
코딩테스트 연습 - 숫자의 표현
Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할
programmers.co.kr
입력값의 최대가 10,000 이므로 O(N^2) 풀이로는 시간초과가 발생할 위험이 있으므로 투 포인터를 이용하여 O(N)의 시간 복잡도로 해결했습니다.
#include <string> #include <vector> using namespace std; int solution(int n) { int answer = 0, head = 0, tail = 0, sum = 0; vector<int> v(n); for(int i = 0; i < n; i++) { v[i] = i + 1; } while(1) { if(sum > n) sum -= v[head++]; else if(tail == n) break; else sum += v[tail++]; if(sum == n) answer++; } return answer; }'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Level 2] 폰켓몬 (C++) (0) 2020.11.09 [프로그래머스/Level 2] N개의 최소공배수 (C++) (0) 2020.11.09 [프로그래머스/Level 2] 땅따먹기 (C++) (0) 2020.11.06 [프로그래머스/Level 2] 올바른 괄호 (C++) (0) 2020.11.06 [프로그래머스/Level 2] 다음 큰 숫자 (C++) (0) 2020.11.06