[BOJ] 10610번: CESTA

https://www.acmicpc.net/problem/10610


'어떤 수 N이 30의 배수이다'와 '어떤 수 N이 3의 배수이고 10의 배수이다'는 동치입니다. 주어진 수를 각 자리의 값을 합한게 3의 배수이면 그 수는 3의 배수입니다.(예를들어 2951 -> 2+9+5+1=17은 3의 배수가 아니므로 2951은 3의 배수가 아님) 그렇다면 수의 자릿값들을 재배열한다 하더라도 3의 배수인지 아닌지는 달라지지 않습니다. 또한 0을 가지고 있으면 0을 끝자리에 배치해서 10의 배수로 만들 수 있습니다.


이를 종합하면 주어진 수를 문자열로 입력받은 후 내림차순으로 정렬하고, 끝자리가 0인지와 각 자릿값의 합이 3의 배수인지를 확인해서 둘 다 만족하면 출력하고 아닐 경우 -1을 출력하면 됩니다.


https://github.com/encrypted-def/BOJ/blob/master/10610.cpp

'알고리즘 > BOJ' 카테고리의 다른 글

[BOJ] 1005번: ACM Craft  (0) 2018.01.07
[BOJ] 10251번: Driving License  (0) 2018.01.07
[BOJ] 11060번: 점프 점프  (0) 2018.01.06
[BOJ] 1629번: 곱셈  (0) 2018.01.06
[BOJ] 7562번: Knights Moves  (0) 2018.01.06
[BOJ] 9625번: RIJEČI  (0) 2018.01.06
  Comments