본문 바로가기
Algorithm

[백준] 2879: 수학숙제(Java)

by 옥돔이와 연근이 2022. 10. 1.
728x90
반응형

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

 

2870번: 수학숙제

종이에서 찾은 숫자의 개수를 M이라고 하면, 출력은 M줄로 이루어져야 한다. 각 줄에는 종이에서 찾은 숫자를 하나씩 출력해야 한다. 이때, 비내림차순으로 출력해야 한다. 비내림차순은 내림차

www.acmicpc.net

 

package 문자열;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.ArrayList;

public class Main_2078 {
	public static void main(String[] args) throws NumberFormatException, IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int T = Integer.parseInt(br.readLine());
		ArrayList<BigInteger> arr = new ArrayList<>();// 범위 때문에 BigInteger를 선언

		for (int i = 0; i < T; i++) {
			String[] s = br.readLine().split("\\D"); // 숫자만 남기고 다 자름 (그러나 문자는 공백으로 되어있기에 제거 필수 )
			for (int j = 0; j < s.length; j++) {
				if (!s[j].equals("")) {
					arr.add(new BigInteger(s[j]));
				}
				;
			}
			arr.sort(null);// null => 비내림차순으로 정렬
		}

		for (int i = 0; i < arr.size(); i++) {
			System.out.println(arr.get(i));
		}
	}
}

 

 

💡 Int, long 보다 큰 정수타입 : BigInteger을 사용 

 

💡 숫자만 남기고 다 자름  (split 사용 -> 참고 링크 )

String[] s = br.readLine().split("\\D"); // 숫자만 남기고 다 자름 (그러나 문자는 공백으로 되어있기에 제거 필수 )

https://jamesdreaming.tistory.com/84

 

[ 자바 코딩 ] Java split() 함수로 문자열 자르기

안녕하세요. 제임스 입니다. 이번에는 Java 에서 String 을 다룰때 유용하게 사용할 수 있는 함수 중 한가지인 split 함수에 대해 알아 보겠습니다. ■ String[] split(String regex) split 함수는 입력받은 정

jamesdreaming.tistory.com

 

728x90