Coding Problem

[BOJ 10610] 30

Yepchani 2025. 3. 16. 20:00
반응형

문제

30

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

 

 

풀이

설명

주어진 수로 30의 배수를 만들 수 있다면 그 중 가장 큰 수를 구하는 문제입니다.

 

30의 배수가 되기 위해서는 10과 3으로 나눌 수 있어야 합니다.

따라서 다음 두 조건을 만족해야 합니다.

  1. 10으로 나눌 수 있으려면, 0을 하나 이상 포함해야 합니다.
  2. 3으로 나눌 수 있으려면, 각 자릿수의 합이 3의 배수여야 합니다.

두 조건을 모두 만족한다면, 내림차순으로 정렬한 후 반환하면 됩니다.

 

예시 코드

function solution() {
  const number = input().split("").map(Number);
  const sum = number.reduce((a, b) => a + b, 0);

  if (!number.includes(0) || sum % 3 !== 0) return -1;

  return number.sort((a, b) => b - a).join("");
}

'Coding Problem' 카테고리의 다른 글

[BOJ 2578] 빙고  (0) 2025.03.19
[BOJ 2548] 대표 자연수  (0) 2025.03.17
[BOJ 3151] 합이 0  (0) 2025.03.15
[BOJ 2251] 물통  (0) 2025.03.14
[BOJ 1300] K번째 수  (0) 2025.03.13