Swift

[Swift] 백준 : 10814 (구조체)

yevdev 2022. 8. 2. 12:13

구조체를 공부를 위해 좋은 문제라고 생각되는 10814!

 

10814번: 나이순 정렬

온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을

www.acmicpc.net

 

여러 변수를 보고 구조체를 생각해 낸 후, 배열에 구조체를 저장한 후 특정 프로퍼티의 정렬순서에 맞게 출력하는게 핵심이라고 생각한다👀

 

순서를 정리해보자면,

  1. name, age를 담은 Member 구조체 생성
  2. 구조체를 저장하기 위한 배열 memArr 생성
  3. 입력받은 데이터를 Member 구조체의 프로퍼티에 맞게 지정후, memArr에 append!
  4. memArr을 age 오름차순으로 정렬 후, sortedArr에 저장
  5. 출력!

 

import Foundation

struct Member {
    var name: String
    var age: Int
}

var memArr: [Member] = []

let n = Int(readLine()!)!

for i in 0..<n {
    let person = readLine()!.split(separator: " ").map{ String($0) }
    let mem = Member(name: person[1], age: Int(person[0])!)
    memArr.append(mem)
}

let sortedArr = memArr.sorted(by: {$0.age < $1.age})

for i in 0..<n {
    print(sortedArr[i].age, sortedArr[i].name)
}

 

 

 

'Swift' 카테고리의 다른 글

[Swift] 서브스크립트  (0) 2022.08.13
[Swift] 상속  (0) 2022.08.02
[Swift] zip(_:_:)  (0) 2022.07.27
[Swift] 모나드 : 컨텍스트, 함수객체, 모나드  (0) 2022.03.24
[Swift] 맵, 필터, 리듀스  (0) 2022.03.22