취미로 음악을 하는 개발자

[java] codeforce ROUND #559 Div.2 (2) 본문

공대인/Codeforce

[java] codeforce ROUND #559 Div.2 (2)

영월특별시 2019. 5. 13. 03:26
728x90





import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.util.StringTokenizer;

public class Main {

public static void main(String[] args) {

BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

try {

String temp = bf.readLine();

int array[] = new int[Integer.parseInt(temp)+1];

String arr = bf.readLine();

StringTokenizer st = new StringTokenizer(arr);

int index = 1;

int min = 1000000000;

while(st.hasMoreTokens()) {

array[index] = Integer.parseInt(st.nextToken());

int deno = 0;

int a = Math.abs(index-1);

int b = Math.abs(index-(array.length-1));

if (a >= b)

deno = a;

else

deno = b;

int k = array[index] / deno;

if (min >= k)

min = k;

index++;

}

System.out.println((int)min);

} catch(Exception e) {

e.printStackTrace();

}

}

}




시험 당시에는 최솟값/max(최솟값 index-1, 최솟값 index-temp)로 계산했었는데

아마 어떤 테스트케이스에는 분자가 최솟값이 아니지만 K값이 최소가 되는 케이스가 있을것이라고 추측했다.

그래서 친구의 도움을 받아서 최솟값을 계산하여 비교하는 것이 아닌,

입력을 넣을 때마다 그것을 바로 계산하여 각 입력마다 값을 구하고 그 중의 최솟값을 K로 정했다.


http://codeforces.com/contest/1159/problem/B



'공대인 > Codeforce' 카테고리의 다른 글

[java] codeforce ROUND #559 Div.2 (1)  (0) 2019.05.13
Comments