본문 바로가기
Algorithm/문제풀이_백준

Swift) 백준 10814번 (나이순 정렬)

by Joahnee 2021. 8. 23.

요구능력 : 여러가지 변수를 보고 구조체를 사용할 생각을 하고 정렬을 활용할 줄 아느냐

 

코드설명 : 

 

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)")
}

댓글