Where who wants to meet someone
백준 Swift [10814] 나이순 정렬 본문
728x90
난이도
실버 V
문제
https://www.acmicpc.net/problem/10814
내 답안
struct Person {
var order: Int
var age: Int
var name: String
}
var arr = [Person]()
for count in 1...Int(readLine()!)! {
let input = readLine()!.split(separator: " ").map { String($0) }
arr.append(Person(order: count, age: Int(input[0])!, name: input[1]))
}
arr.sort {
$0.age == $1.age ? $0.order < $1.order : $0.age < $1.age
}
for i in arr.indices {
print("\(arr[i].age) \(arr[i].name)")
}
- 구조체를 꼭(?) 써야 하는 문제..
- 똑같은 로직인데 구조체를 안 쓰면 틀렸습니다만 나오고, 구조체를 쓰는 순간 통과가 되어버린..
- 가입 순서, 나이, 이름 프로퍼티를 가지는 Person 구조체를 만들고, for문을 돌면서 각 순서(count)를 order에, input의 0번 값을 Int로 타입 캐스팅하여 age에, input의 1번 값을 name에 넣어준 Person을 arr에 추가한다.
- 이후 sort를 통해 age가 같다면 order순으로, age가 다르다면 age순으로 정렬할 수 있게 하였고, 각각을 출력하는 방식을 사용했다.
'백준 알고리즘 문제 기록 > 정렬' 카테고리의 다른 글
정렬의 종류 (0) | 2023.08.07 |
---|---|
백준 Swift [18870] 좌표 압축 (0) | 2023.08.07 |
백준 Swift [1181] 단어 정렬 (2) | 2023.08.04 |
백준 Swift [11651] 좌표 정렬하기 2 (0) | 2023.08.04 |
백준 Swift [11650] 좌표 정렬하기 (0) | 2023.08.02 |