코딩테스트
백준 옥상 정원 꾸미기(6198번)
코드 죄수
2022. 8. 29. 18:37
이 문제는 태그에 스택을 이용하는 문제라고 써 있었지만 호기심으로 스택을 사용하지 않았다.
따라서 배열을 활용하여 문제를 풀었다.
알고리즘은 배열에 모든 건물의 층수를 담는다.
그리고 2중 반복문을 이용하여 현재 건물이 볼수있는 개수를 카운트하는게 전부이다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
int[] height = new int[num];
long count=0;
for (int i =0; i< num; i++) { // 건물의 개수만큼 반복한다.
height[i] = Integer.parseInt(br.readLine());
}
for(int i=0; i<num-1; i++) { //건물의 개수 -1만큼 반복 (마지막 건물은 어짜피 아무것도 보지 못하기때문에 돌릴 필요 없음)
for(int j=i+1;j<num;j++) { //현재 건물이 볼 수 있는 건물만 반복
if(height[i]> height[j]) { //현재 건물이 보는게 가능하면 실행
count++; // 카운트 증가
}else { //현재 건물보다 높거나 같아서 못보면 실행
break; //더이상 진행할 필요없음
}
}
}
System.out.println(count);
}
}