문제
컨벡스 헐은 주어진 점들을 모두 포함하는 최소 넓이의 볼록 다각형을 의미한다.
점들의 집합이 주어졌을때 컨벡스헐을 구하라는 문제를 풀던 성현이는, 이 알고리즘이 너무 어려워 포기하고말았다 ㅜㅜ
그래서 성현이는 컨벡스 헐 대신 컨벡스 헐~ 을 정의했다.
컨벡스 헐~ 이란 모든 점을 포함하는 임의의 볼록다각형을 의미한다. 이때, 경계에 놓인 점들도 포함한다고 정의한다.
컨벡스 헐~ 은 주어진 점의 집합에 대하여 유일하지 않으며 여러 개 존재한다.
컨벡스 헐 문제를 해결하지 못해 슬픈 성현이를 위해 개의 점이 주어질때 , 아무 컨벡스 헐~ 을 구해보자.
입력
첫째줄에 점들의 개수인 이 주어진다.
둘째줄에 점들의 , 좌표가 공백을 사이에 두고 주어진다
출력
컨벡스 헐~ 을 구성하는 점들의 개수 를 출력한다. 는 를 만족해야하며, 해당범위 내에서 문제를 해결 할 수 있음이 보장된다.
이후 개의 줄에 컨벡스 헐~을 이루는 점들을 임의의 순서대로 출력한다.
각각의 점들의 좌표 , 는 를 만족해야한다.
예제 입력 1
5
1 1
1 2
2 3
4 2
3 0
예제 출력 1
5
0 1
0 2
2 4
5 2
3 0
힌트
노트
엄밀한 컨벡스헐의 수학적 정의는 위와같지 않다. 유클리드 공간에 있는 어떤 집합 가 주어졌을 때, 안의 임의의 두 점을 연결하는 선분(Line segment) 상의 모든 점이 다시 에 속한다면, 집합 를 '볼록 집합'이라고 하며, 이를 수식으로 표현하면 다음과 같다.
집합 가 볼록 집합일 필요충분조건은 임의의 와 임의의 실수 에 대하여 위와같은 식이 성립하는 것이다.
이때 컨벡스헐은 다음과 같이 정의된다.
유클리드공간 이외에도 컨벡스헐이 정의될수있다. 아주 재미있으니 관심있다면 해석학을 들어보자. 본 내용은 문제풀이와 관련되어있지 않다.
- 문제를 만든 사람
- 백성현
- 알고리즘 분류
코드를 제출하려면 로그인이 필요합니다.
로그인| # | 순위 | 사용자 | 언어 | 시간 | 메모리 | 코드 길이 | |
|---|---|---|---|---|---|---|---|
| 8436 | 🥇 | TACOCAT | Text | 1ms | 1876KB | 53B | |
| 7239 | 🥈 | 이승준 | Text | 1ms | 1928KB | 53B | |
| 7710 | 🥉 | 지구인 | Text | 1ms | 1928KB | 53B | |
| 8425 | 4 | 안우진 | Python | 8ms | 8376KB | 64B | |
| 7217 | 5 | 아보카도 | Python | 12ms | 9036KB | 221B | |
| 8222 | 6 | 베스킨라빈스숭이원 | Python | 13ms | 8472KB | 172B | |
| 7330 | 7 | 코요태 | PyPy | 21ms | 50428KB | 67B | |
| 8287 | 8 | 니얼굴 | PyPy | 33ms | 57376KB | 286B | |
| 7606 | 9 | Team_Choi | PyPy | 34ms | 58284KB | 203B | |
| 8237 | 10 | 이일우 | PyPy | 35ms | 58468KB | 203B |
| # | 사용자 | 문제 | 결과 | 언어 | 시간 | 메모리 | 코드 길이 | 제출 시간 | |
|---|---|---|---|---|---|---|---|---|---|
| 8436 | 맞았습니다 | Text | 1ms | 1876KB | 53B | 2026. 05. 26. 10:18 | |||
| 8425 | 맞았습니다 | Python | 8ms | 8376KB | 64B | 2026. 05. 26. 08:25 | |||
| 8382 | 시스템 에러 | Python | - | - | 177B | 2026. 05. 26. 05:56 | |||
| 8362 | 시스템 에러 | Text | - | - | 61B | 2026. 05. 26. 03:51 | |||
| 8361 | 시스템 에러 | Python | - | - | 106B | 2026. 05. 26. 03:50 | |||
| 8360 | 시스템 에러 | Python | - | - | 86B | 2026. 05. 26. 03:48 | |||
| 8287 | 맞았습니다 | PyPy | 33ms | 57376KB | 286B | 2026. 05. 25. 15:13 | |||
| 8237 | 맞았습니다 | PyPy | 35ms | 58468KB | 203B | 2026. 05. 25. 11:14 | |||
| 8222 | 맞았습니다 | Python | 13ms | 8472KB | 172B | 2026. 05. 25. 10:01 |