• 코드

실패 코드 : 처음 코드는 아니고 많이 바꾼 코드인데, 젤 긴 건물의 index를 찾은 뒤, 그 건물부터 보이는 건물의 개수를 왼쪽, 오른쪽을 체크한 뒤 건물의 수를 오른쪽 index - 왼쪽 index로 출력했다. 이게 아닌가 보다... 문제 이해가 안된건가...

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Main {
	
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub        
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int number = Integer.parseInt(br.readLine());
		long [] array = new long[number];
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		for(int i=0;i<array.length;i++) 
			array[i] = Long.parseLong(st.nextToken());
		
		int maxValueIndex = 0;
		long saveValue=0;
		for(int i=0;i<array.length;i++) {
			if(saveValue<array[i]) {
				maxValueIndex=i;
				saveValue=array[i];
			}				
		}
		
		int max = 0;
		for(int i=1;i<maxValueIndex;i++) {
			if(array[max]<=array[i])
				max=i;
		}
		
		int max1 = maxValueIndex+1;
		for(int i=maxValueIndex+2;i<array.length;i++) {
			if(array[max1]<array[i])
				max1=i;
		}
		
		System.out.println(max1-max);
    }
}

 

다른 사람 설명 봤는데 CCW 알고리즘을 설명한다.. 다음에 공부해서 풀어봐야겠다..

 

+ Recent posts