Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 | 29 | 30 | 31 |
Tags
- Math
- implement
- Counting
- Stack
- Number Theory
- 파이썬
- SQL
- string
- database
- Binary Tree
- hash table
- simulation
- java
- Matrix
- Tree
- Method
- greedy
- 코딩테스트
- Binary Search
- geometry
- 코테
- array
- bit manipulation
- dynamic programming
- Class
- two pointers
- sorting
- Data Structure
- 구현
- 자바
Archives
- Today
- Total
코린이의 소소한 공부노트
[백준 온라인 저지] 10610. 30 본문
어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한다.
미르코를 도와 그가 만들고 싶어하는 수를 계산하는 프로그램을 작성하라.
1. 입력
- N을 입력받는다. N는 최대 105개의 숫자로 구성되어 있으며, 0으로 시작하지 않는다.
2. 출력
- 미르코가 만들고 싶어하는 수가 존재한다면 그 수를 출력하라.
- 그 수가 존재하지 않는다면, -1을 출력하라.
3. 예제
4. 코드
import java.util.*;
class Main{
public static void main(String[] args){
char[] nums = new Scanner(System.in).next().toCharArray();
int[] count = new int[10]; // 0 ~ 9까지의 개수를 저장
int sum = 0;
for(int i=0 ; i<nums.length ; i++) {
int x = nums[i]-'0';
sum += x;
count[x]++;
}
StringBuilder sb = new StringBuilder();
if(count[0]!=0 && sum%3==0) {
for(int i=9 ; i>=0 ; i--) {
if(count[i]!=0) {
for(int j=0 ; j<count[i] ; j++)
sb.append(i);
}
}
} else
sb.append(-1);
System.out.print(sb.toString());
}
}
- 21212KB, 336ms
- 입력이 정수 범위를 넘어갈 수 있으니 int나 long으로 받지 않는다.
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[백준 온라인 저지] 2437. 저울 (0) | 2023.06.29 |
---|---|
[백준 온라인 저지] 1946. 신입 사원 (0) | 2023.06.29 |
[백준 온라인 저지] 1541. 잃어버린 괄호 (0) | 2023.06.29 |
[백준 온라인 저지] 1138. 한 줄로 서기 (0) | 2023.06.29 |
[백준 온라인 저지] 2217. 로프 (0) | 2023.06.28 |