코드 복사/붙여넣기 하는 당신이 아름답습니다.

10610 : 30

풀이

어떤 숫자 N이

  • 3의 배수인 조건 : 모든 자리에 있는 숫자들의 합이 3의 배수
  • 10의 배수인 조건 : 첫째 자리의 숫자가 0

이 둘을 합쳐주면 30인 조건이 된다 (!!!)

코드

#include <stdio.h>

int i, sum, cnt[10];
char str[100002];

int main() {
	scanf("%s", str);

	for (i = 0; str[i]; i++)
		cnt[str[i] - '0']++, sum += str[i] - '0';

	if (!cnt[0] || sum % 3) return ~printf("-1");

	for (i = 9; i >= 0; i--)
		while (cnt[i]--) printf("%d", i);

	return 0;
}
#include <stdio.h>
#include <string.h>
#include <algorithm>

int sum, len;
char num[100002];

int main() {
	scanf("%s", num);
    
	len = strlen(num);
	std::sort(num, num + len, [](const char &i, const char &j){return i>j;});
	for (int i = 0; i < len; i++) sum += num[i] - '0';
	
    if (sum % 3 || num[len - 1] - '0') printf("-1");
	else printf("%s", num);

	return 0;
}

아무말

백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이

wookje.kwon's profile image

wookje.kwon

2018-01-08 23:51

Read more posts by this author