https://www.acmicpc.net/problem/1789
#include <bits/stdc++.h>
#define endl "\n"
using namespace std;
/******** 함 수 ********/
int main(void) {
/******** C++ INIT ********/
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
/******** 변 수 ********/
long long input;
long long sum = 0;
long long chk;
vector<long long> v;
/******** 구 현 ********/
v.push_back(0);
cin >> input;
// 1부터 시작 : 모두 합한 수가 입력된 수보다 작으면 벡터에 삽입
for (long long i = 1; sum < input; i++) {
v.push_back(i);
sum += i;
}
// 합한 수가 커졌으면 입력된 수와 차를 구함
chk = sum - input;
// 차가 없으면
if (chk == 0) {
cout << v.size() - 1;
return 0;
}
// 차가 있을 시 차이나는 만큼의 수를 벡터에서 제거
v.erase(v.begin() + chk);
cout << v.size() - 1;
}
'알고리즘' 카테고리의 다른 글
C++ 알고리즘 - 9655 돌 게임 (0) | 2025.01.20 |
---|---|
C++ 알고리즘 - 1049 막대기 (0) | 2025.01.20 |
C++ 알고리즘 - 1475 방 번호 (0) | 2025.01.19 |
C++ 알고리즘 - 4673 셀프 넘버 (0) | 2025.01.19 |
C++ 알고리즘 - 1748 수 이어 쓰기 1 (0) | 2025.01.19 |