반응형
1.자릿수 중 0 을 포함(2 or 5의 배수)
2.모든 자릿수의 합이 3의 배수
3.가장 큰 숫자 순으로 정렬하여 출력.
정수론에 따라 이 세가지 조건을 만족하면 30의 배수 중 가장 큰 놈입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include <iostream> #include <algorithm> #include <cstring> using namespace std; int t; bool z; char num[100001]; bool cmp(const int &a, const int &b) { return a > b;//내림차순으로 정렬 - > 가장 큰 수를 출력하기 위함 } int main() { cin >> num; int snum = strlen(num); for (int i = 0; i < snum; i++) { if (num[i] == '0') { z = 1; } t += num[i] - '0'; } if (t % 3 == 0 && z == 1) { sort(num, num + snum,cmp); for (int i = 0; i < snum; i++) cout << num[i]; } else cout << "-1" << '\n'; } | cs |
'Algorithm' 카테고리의 다른 글
(C++) - 백준(BOJ) 1356번 : 유진수 답 (0) | 2017.03.21 |
---|---|
(C++) - 백준(BOJ) 1940번 : 주몽 답 (0) | 2017.03.21 |
(C++) - 백준(BOJ) 6378 : 디지털 루트 답 (0) | 2017.03.20 |
(C++) - 백준(BOJ) 5347번 : LCM 답 (0) | 2017.03.19 |
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 3460번:이진수 답 (0) | 2017.03.19 |