[백준]1181번 자바

allnight5·2023년 6월 28일
0

백준

목록 보기
2/7

링크

나는 Set을 사용했으나 그냥 처음부터 배열에 담고
출력하면서 앞에것과 비교하면서 같지않다면 출력하는 형식으로 해도 된다.

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.util.*;
public class Main
{
	public static void main(String[] args) throws IOException{
	    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	    int endPoint = Integer.parseInt(br.readLine());
	    Set<String> set = new TreeSet<>();
	    for(int i=0; i<endPoint;i++){
	        set.add(br.readLine()); 
	    }
	    String[] strArray = new String[set.size()];
	    inputStringArray(set, strArray);
        sortArray(strArray);
        
	    for(String a : strArray){
		    System.out.println(a);
	    } 
	}
	public static void inputStringArray(Set<String> set, String[] strArray){
	    Iterator<String> iter = set.iterator();  
	    int cur =0;
	    while(iter.hasNext()){
	        strArray[cur] = iter.next();
	        cur++;
	    }
	}
	
	public static void sortArray(String[] strArray){ 
        Arrays.sort(strArray, (a, b) -> {
            if (a.length() == b.length()) {
                return a.compareTo(b);
            } else {
                return a.length()- b.length();
            }
        });
	}
}

배열이 아닌 컬렉션 사용

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int endPoint = Integer.parseInt(br.readLine());
        Set<String> set = new TreeSet<>();
        
        for (int i = 0; i < endPoint; i++) {
            set.add(br.readLine());
        }
        
        List<String> list = new LinkedList<>(set); // String 배열 대신 List<String>으로 변경
        
        sortList(list);
        
        for (String a : list) {
            System.out.println(a);
        }
    }
    
    public static void sortList(List<String> list) {
        list.sort((a, b) -> {
            if (a.length() == b.length()) {
                return a.compareTo(b);
            } else {
                return a.length() - b.length();
            }
        });
    }
}
profile
공부기록하기

0개의 댓글