간단히 사람배열과 그 사람의 보유금액배열을 스위프트로 생성해 보겠다.
사람배열은 문자열형, 보유금액배열은 Int형이다.
var arrPerson:[String] = []
var arrMoney:[Int] = []
// 한명씩 append시키고
arrPerson.append("홍길동")
arrPerson.append("고길동")
arrPerson.append("둘리")
//순서대로 보유금액을 append시킨다.
arrMoney.append(10000000)
arrMoney.append(30000000)
arrMoney.append(0)
//이제 dictionary를 선언한다. key, value는 String,Int형이다. key에는 이름이 value에는 금액이 들어갈 것이다.
var dicData = [String:Int]()
//사람과 보유금액의 배열은 1:1이므로 사람이든 금액이든 아무 배열이나 잡고 돌리면 되지만 난 사람 배열로 돌린다.
for i in 0..<arrPerson.count {
//dictionary의 key에 사람배열의 값, value에 보유금액의 값을 저장한다.
dicData[arrPerson[i]] = arrMoney[i]
}
// 출력해보면 순서대로 홍길동 10000000, 고길동 30000000, 둘리 0이 찍히는것을 확인할 수 있다.
for (key, value) in dicData {
print("\(key) : \(value)")
}
print("정렬 후 결과")
// 이제 정렬을 해보자
// 오름차순정렬이고 만약 내림차순이 하고싶다면 $0.1 < $1.1 대신 $0.1 > $1.1바꿔주면 된다.
// 참고로 0.1, 1.1은 첫번째 인자의 value 두번째 인자의 value를 뜻한다.
// 결과는 튜플로 반환가능하다.
var tupSortResult = dicData.sorted {$0.1 < $1.1}
//print해보면 정렬된 상태로 확인된다.
//[(key: "둘리", value: 0), (key: "홍길동", value: 10000000), (key: "고길동", value: 30000000)]
print("\(tupSortResult)")
//for문을 통해 돌려가며 찍어보면 아래처럼 보여진다.
// 둘리 0
// 홍길동 10000000
// 고길동 30000000
for i in 0..<tupSortResult.count {
print("\(tupSortResult[i].key) \(tupSortResult[i])")
}
'모바일 & 앱' 카테고리의 다른 글
윈도우 11의 불편한 추가옵션표시 끄기 (0) | 2023.09.04 |
---|---|
swift로 문자열 다루기 (확장자 제거, 원하는 자릿수만 추출하기) (1) | 2023.07.19 |
vscode에서 메뉴 한글로 바꾸기 (0) | 2023.07.14 |
classic asp의 불치병 2차원 배열 동적할당 (0) | 2023.04.14 |
MSSQL 컬럼을 보유한 테이블 조회, 전체 컬럼 확인하기 (0) | 2023.04.10 |