[백준 / 7568] 덩치


날짜: 2022년 12월 25일
카테고리: 브루트 포스
태그: silver.5, 7568, 스위프트

백준 2468 - 덩치

입출력 예시

예제 입력예제 출력
52 2 1 2 5
55 185 
58 183 
88 186 
60 175 
46 155 

내가 적은 코드

import Foundation

var countPeople = Int(readLine()!)!
var peopleArray:[[String]] = []
var answerArray:[String] = []

for i in stride(from: 0, to: countPeople, by: 1) {
    let peopleSize = readLine()!.components(separatedBy: " ")
    peopleArray.append(peopleSize)
}

for j in peopleArray {
    var count = 1
    for l in peopleArray {
        if Int(j[0])! < Int(l[0])! && Int(j[1])! < Int(l[1])! {
            count += 1
        }
    }
    answerArray.append(String(count))
}

print(answerArray.joined(separator: " "))

풀이 과정

브루트 포스로 풀면 쉽게 풀리는 문제
peopleArray의 원소의 사람 중 몸무게도, 키도 큰 사람이 몇명 있는지를 answerArray에 저장을 하고
( -> 이런 방식으로 한다면 공동 등 수도 체크 가능)
joined 함수를 통해 그 등수를 출력

베스트 코드

let n = Int(readLine()!)!
var arr = [(Int,Int)]()
var rank = 0
for _  in 0..<n{
    let xy = readLine()!.split(separator:" ").map{Int(String($0))!}
    arr.append((xy[0],xy[1]))
}
for i in arr{
    rank = arr.filter{i.0<$0.0 && i.1<$0.1}.count+1
    print(rank, terminator : " ")
}

리뷰

  • 스위프트로 푼 첫 알고리즘이다.
  • 실버5 수준이라 푸는 데 20분도 걸리지 않았다.
    스위프트가 좀 더 익숙했으면 10분도 채 걸리지 않았을 문제였을 듯




© 2021. by hminkim