요구능력 : 여러가지 변수를 보고 구조체를 사용할 생각을 하고 정렬을 활용할 줄 아느냐
코드설명 :
1. member구조체를 선언하여 필요한 요소인 name, age, order를 선언
2. member 구조체들을 저장하기위한 memArr배열을 선언
3. memArr배열에 member구조체들을 추가
4. memArr배열을 조건에 맞게 정렬
5. memArr에 저장된 각 배열의 원소의 나이와 이름을 출력
후기 : 딕셔너리와 sort()를 활용할 줄 알면 가벼운 문제
struct member{ //1번
var name: String
var age: Int
var order: Int
}
let n = Int(readLine()!)!
var memArr: [member] = [] //2번
for i in 0..<n {
let a = readLine()!.split(separator: " ").map { s in
String(s)
}
let mem = member(name: a[1], age: Int(a[0])!, order: i)
memArr.append(mem) //3번
}
//4번
memArr.sort { a, b in
a.age == b.age ? a.order < b.order : a.age < b.age
}
for j in 0..<n { //5번
print("\(memArr[j].age) \(memArr[j].name)")
}
'Algorithm > 문제풀이_백준' 카테고리의 다른 글
Swift) 백준 4375번 (1)(종료조건 EOF) (0) | 2021.08.24 |
---|---|
Swift) 백준 18870번 (좌표압축) (0) | 2021.08.24 |
Swift) 백준 1181번 (단어 정렬) (0) | 2021.08.23 |
Swift) 백준 11651번 (좌표 정렬하기2) (0) | 2021.08.23 |
Swift) 백준 11650번 (좌표 정렬하기) (0) | 2021.08.23 |
댓글