-
[BOJ/Swift] 단어 정렬 1181Legacy/Be Refactoring.. 2021. 9. 12. 01:20728x90
Baekjoon Online Judge
단계별로 풀어보기 / 정렬 / 댠어 정렬 1181
문제에 모든 정보 및 저작권 https://www.acmicpc.net/
Todo:
알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오.
- 길이가 짧은 것부터
- 길이가 같으면 사전 순으로
Constraints:
입력 제약:
첫째 줄에 단어의 개수 N이 주어진다.
(1 ≤ N ≤ 20,000)
둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다.
주어지는 문자열의 길이는 50을 넘지 않는다.출력 제약:
조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다.Input-Output
(출처: https://www.acmicpc.net/problem/1181)Solution.swift
let wordCount = Int(readLine()!)! var words = [String]() for _ in 0..<wordCount { words.append(readLine()!) } Set(words).sorted { lhs, rhs -> Bool in return lhs.count < rhs.count || (lhs.count == rhs.count && lhs < rhs) }.forEach { word in print(word) }
github Code Repository
How I tried this:
다른 언어의 라이브러리를 공부 안해서 잘 모르지만
스위프트는 문자열 자체를 비교하면 사전순 비교도 가능했었다 (경험)일단 각 단어의 알파벳 수를 비교하고 같은 경우 사전순으로 정렬했더니..
통과했다..
What I got is:
I have to study:
- 문자열의 비교 심화학습 (근거? 논리적인 이유 찾아보기)
문제에 관한 모든 저작권 : https://www.acmicpc.net/
728x90'Legacy > Be Refactoring..' 카테고리의 다른 글
[BOJ/Swift] 통계학 2108 (0) 2021.09.13 [BOJ/Swift] 좌표 정렬하기 11650 (0) 2021.09.12 [BOJ/Swift] 나이순 정렬 10814 (0) 2021.09.12 [BOJ/Swift] 좌표 압축 18870 (0) 2021.09.12 [BOJ/Swift] 좌표정렬하기 2 11651 (0) 2021.09.12