728x90
#include<iostream>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
int min = n;
for (int i = 0; i < n; i++) {
if (n == i + i / 100 + i % 100 / 10 + i % 10)
if (i < min)
min = i;
}
cout << min;
}
틀렸다.
생성자가 없는경우를 생각하지 못했다 ㅎㅎ;
생성자를 넣어주려고 머리를 굴리다가 문제가 그뿐이 아니라는 것을 알게되었다.
n의 범위가 100의 단위로만 한정된 것이 아니기에 다시 풀어야한다는 것을 알게되었고
다른 블로그를 통해 해답을 얻게되었다.
#include <iostream>
#include <cmath>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n, result = 10000001;
int generate;
cin >> n;
for (int i = 1; i <= n; i++) {
generate = i + (i % 10);
for (int j = 1; j <= log10(i); j++) {
generate += (i % (int)pow(10, j + 1)) / pow(10, j);
}
if (generate == n && i < result)
result = i;
}
if (result > 1000000)
cout << 0 << '\n';
else
cout << result << '\n';
}
왜 result를 저렇게 했나 생각을 해봤는데 조건에 부합하는 경우에만 i로 초기화 되고, 그렇지 않으면 10000001으로 유지가 되니 생성자가 없는 경우 0이 출력 될 수 있게 해놓은 것이다.
어렵다.
728x90
'알고리즘 연습' 카테고리의 다른 글
C++ 11650 좌표 정렬하기 (1) | 2021.10.01 |
---|---|
C++ 1427 소트 인사이드 (0) | 2021.09.30 |
C++ 2798 블랙잭 (0) | 2021.09.30 |
C++ 4153 직각삼각형 (0) | 2021.09.28 |
C++1085 직사각형에서 탈출 (0) | 2021.09.28 |