본문 바로가기

PS/백준

[BOJ] 백준 7568 덩치 (Swift)

반응형

문제

https://www.acmicpc.net/problem/7568

 

7568번: 덩치

우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩

www.acmicpc.net

풀이

이 문제에서는 덩치는 키와 몸무게가 둘 다 크다면 덩치가 더 큰 것으로 판단합니다.
자기 자신보다 덩치가 큰 사람의 수 + 1자신의 덩치 등수가 되므로,
자기 자신과 모든 사람과의 덩치를 비교를 해서 풀이할 수 있습니다.

즉, 완전탐색으로 풀이할 수 있습니다.

$O(n^2)$의 시간복잡도가 소요될 것이고 n이 최대 50이므로 완전탐색으로 풀이시, 충분한 시간내에 가능합니다.

저는 키와 몸무게를 프로퍼티로 갖고 있고, Comparable 프로토콜을 채택하고있는 구조체를 만들어주었고,

비교연산자를 오버로딩 하여서 객체의 대 소를 비교하였습니다.

물론 (Int, Int) 형태의 튜플로 키와 몸무게 값을 비교해도 무방합니다.

소스코드

후기

연산자 오버로딩, Comparable 등의 기능을 활용해서 풀어봤는데, 
PS가 아닌 실제로 구현할 때에도 자주 사용할 수 있을 것 같아서 사용하는 것도 괜찮다는 느낌을 받았습니다.

반응형