[백준 / 7568] 덩치
in Problem Solving on BaekJoon
날짜: 2022년 12월 25일
카테고리: 브루트 포스
태그: silver.5
, 7568
, 스위프트
입출력 예시
예제 입력 | 예제 출력 |
---|---|
5 | 2 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분도 채 걸리지 않았을 문제였을 듯