고층 건물 성공출처
시간 제한메모리 제한제출정답맞은 사람정답 비율
2 초 | 128 MB | 4074 | 1292 | 1073 | 34.940% |
문제
세준시에는 고층 빌딩이 많다. 세준시의 서민 김지민은 가장 많은 고층 빌딩이 보이는 고층 빌딩을 찾으려고 한다. 빌딩은 총 N개가 있는데, 빌딩은 선분으로 나타낸다. i번째 빌딩 (1부터 시작)은 (i,0)부터 (i,높이)의 선분으로 나타낼 수 있다. 고층 빌딩 A에서 다른 고층 빌딩 B가 볼 수 있는 빌딩이 되려면, 두 지붕을 잇는 선분이 A와 B를 제외한 다른 고층 빌딩을 지나거나 접하지 않아야 한다. 가장 많은 고층 빌딩이 보이는 빌딩을 구하고, 거기서 보이는 빌딩의 수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 빌딩의 수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에 1번 빌딩부터 그 높이가 주어진다. 높이는 1,000,000,000보다 작거나 같은 자연수이다.
출력
첫째 줄에 문제의 정답을 출력한다.
예제 입력 1 복사
15 1 5 3 2 6 3 2 6 4 2 5 7 3 1 5
예제 출력 1 복사
7
출처
- 문제를 번역한 사람: baekjoon
알고리즘 분류
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))
fun main()=with(br){
val n = readLine()!!.toInt()
val seeCount= IntArray(n,{0})
var inclination = DoubleArray(n,{0.0})
val graph = readLine()!!.split(" ").map{it.toDouble()}
for(i in 0 until graph.size){
var count = 0
var count2 = 0
var y = graph[i]
for(j in 0 until i){
inclination[j]=(y-graph[j])/(i-j)
}
for(j in graph.size-1 downTo i+1)
{
inclination[j]=(graph[j]-y)/(j-i)
}
var tmp = 0.0
for(j in 0 until i){
tmp = inclination[j]
var key = true
for(k in j+1 until i){
if(tmp>=inclination[k]){
key = false
break
}
}
if(key){
count++
}
}
for(j in graph.size-1 downTo i+1) {
tmp = inclination[j]
var key = true
for(k in j-1 downTo i+1){
// println(inclination[k])
if(tmp<=inclination[k]){
key = false
break
}
}
if(key){
count2++
}
}
seeCount[i]=count+count2
}
var ans = seeCount.maxByOrNull { it }
println(ans)
bw.flush()
bw.close()
}
|
cs |
'알고리즘 공부 > 미분류' 카테고리의 다른 글
플로이드 워셜 알고리즘 (0) | 2021.08.20 |
---|---|
백준 1752번 with Kotlin (0) | 2021.08.20 |
최단경로 다익스트라 알고리즘 (0) | 2021.08.10 |
백준 17219번 with Kotlin (0) | 2021.08.04 |
백준 1780번 with 코틀린 (0) | 2021.08.04 |