[알고리즘/백준] 1181번 : 단어 정렬(Java)

2025. 5. 21. 07:40·Programming/Algorithm
문제 1181번 : 단어정렬
문제링크 https://www.acmicpc.net/problem/1181
난이도 S5
언어 Java
분류 문자열, 정렬

 

 

📌 최종 정답 코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Set;

public class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		// 단어의 개수 입력
		int n = Integer.parseInt(br.readLine());
		
		// 중복 제거하면서 입력
		Set<String> inputs = new HashSet<String>();
		for(int i=0; i<n; i++) {
			inputs.add(br.readLine());
		}
		
		// 리스트로 변환하여 정렬
		ArrayList<String> result = new ArrayList<String>(inputs);
		
		// 정렬
		Collections.sort(result, new Comparator<String>(){
			@Override
			public int compare(String s1, String s2){
				if (s1.length() != s2.length()) { 
					// 길이가 짧은 문자열이 앞에 오도록 정렬
					return s1.length() - s2.length(); 
				} else { 
					// 길이가 같을 경우 사전 순
					return s1.compareTo(s2); 
				}
			};
		});
		
		// 출력
		for(String s : result) {
			bw.write(s + "\n");
		}
		
		bw.flush();
		bw.close();
	}
}


📌 구해야 하는 정답

- 길이가 짧은 것부터, 같으면 사전 순으로 정렬하여 출력


📌 코드 설계하기

1. 단어의 개수 입력

2. 중복 제거하면서 단어 입력

3. 정렬

 - 길이가 짧은 문자열이 앞에 오도록

 - 길이가 같을 경우 사전 순으로

4. 출력하기

 

 

'Programming > Algorithm' 카테고리의 다른 글

[알고리즘/백준] 25305번 : 커트라인(Java)  (0) 2025.05.23
[알고리즘/백준] 5635번 : 생일(Java)  (1) 2025.05.22
[알고리즘/백준] 10814번 : 나이순 정렬(Java)  (1) 2025.05.20
[알고리즘/백준] 2309번 : 일곱 난쟁이(Java)  (1) 2025.05.19
[알고리즘] 21일 챌린지 후기 - 새싹반  (2) 2025.04.28
'Programming/Algorithm' 카테고리의 다른 글
  • [알고리즘/백준] 25305번 : 커트라인(Java)
  • [알고리즘/백준] 5635번 : 생일(Java)
  • [알고리즘/백준] 10814번 : 나이순 정렬(Java)
  • [알고리즘/백준] 2309번 : 일곱 난쟁이(Java)
min_sol
min_sol
  • min_sol
    비글개발연구소🐾
    min_sol
  • 전체
    오늘
    어제
    • 분류 전체보기 (278)
      • Programming (128)
        • Algorithm (52)
        • JAVA (40)
        • GIS (5)
        • PyQt (10)
        • C# (11)
        • Mobile (6)
        • AI (4)
      • Backend (36)
        • Spring (14)
        • JSP (11)
        • Network (5)
      • Frontend (29)
        • React (11)
        • Vue (13)
        • Next.js (4)
      • Database (10)
        • PostgreSQL (1)
        • Oracle (8)
        • Elasticsearch (1)
      • DevOps (8)
        • Linux (7)
        • Mac (1)
      • Tools (31)
        • IntelliJ (1)
        • GitHub (10)
        • RPA (20)
      • Security (9)
      • etc (21)
        • ERROR (5)
        • 세미나 | 교육 (10)
        • 자격증 (1)
        • 일상 (2)
        • 2021 (2)
  • 인기 글

  • 태그

    이클립스
    계산기
    알고리즘
    스윙
    spring
    Java
    연습문제
    코딩테스트
    자동화
    명품자바에센셜
    생능출판
    백준
    jsp
    vue.js
    RPA
    자바
    PyQt
    자료구조
    VUE
    PyQt5
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
min_sol
[알고리즘/백준] 1181번 : 단어 정렬(Java)
상단으로

티스토리툴바