반응형
×
구현, 브루트포스 - Silver 5
백준 7568 덩치
단순 구현 문제인데 풀지 못했다..
뭔가 키랑 몸무게 별로 정렬을 해서 비교할 수 있지 않을까 생각했는데 그냥 완전탐색을 해야하는 거였움..
중첩 반복문으로 돌려서 덩치를 비교하고, 자신보다 덩치 큰 사람 발견하면 등수 + 1 을 해주면 된다.
let n = Int(readLine()!)!
var person: [[Int]] = Array(repeating: [0,0], count: n)
var count: [Int] = Array(repeating: 1, count: n)
for i in 0..<n {
let p = readLine()!.split(separator: " ").map { Int($0)! }
person[i] = [p[0], p[1]]
}
for i in 0..<n {
for j in 0..<n {
if person[i][0] < person[j][0], person[i][1] < person[j][1] {
count[i] += 1
}
}
}
print(count.map { String($0) }.joined(separator: " "))
다른 풀이
한 번에 튜플로 다 저장해서 요런 식으로 풀어주는 방법도 있더라.
let n = Int(readLine()!)!
var arr: [(Int, Int, Int)] = []
for _ in 0..<n {
let input = readLine()!.split(separator: " ").map { Int(String($0))! }
arr.append((input[0], input[1], 1))
}
for i in 0..<n {
for j in 0..<n {
if arr[i].0 > arr[j].0 && arr[i].1 > arr[j].1 {
arr[j].2 += 1
}
}
}
var answer = ""
for a in arr {
answer += "\(a.2) "
}
print(answer)
728x90
반응형
'Algorithm > 자료구조 알고리즘' 카테고리의 다른 글
[알고리즘] 투 포인터 Two Pointers (0) | 2023.09.11 |
---|---|
[알고리즘] 그리디 Greedy 탐욕법 (0) | 2023.04.07 |
[알고리즘] 누적 합, 구간 합 Prefix Sum (0) | 2023.04.07 |
[알고리즘] Binary Search 이분탐색 (0) | 2022.12.31 |
알고리즘 시간복잡도 분석 (0) | 2022.12.15 |