문제
오늘은 수능이 끝난 다음날로 교장선생님은 1, 2학년 재학생들에게 강당에 모여 어벤져스 영 화를 보여준다고 하여 학생들이 강당에 모였습니다. 강당의 좌석은 영화관처럼 계단형이 아니라 평평한 바닥에 의자만 배치하고 학생들이 앉습니 다. 그런데 만약 앞자리에 앉은 키가 큰 학생이 앉으면 그 학생보다 앉은키가 작은 뒷자리 학 생은 스크린이 보이지 않습니다. 한 줄에 앉은키 정보가 주어지면 뒷사람 모두의 시야를 가려 영화 시청이 불가능하게 하는 분노유발자가 그 줄에 몇 명이 있는지 구하는 프로그램을 작성 하세요.
입력설명
첫 줄에 한 줄에 앉은 학생수 N(3<=N<=100)이 주어집니다. 두 번째 줄에 N명의 앉은 키 정보(45이상 100이하)가 앞 자리 학생부터 차례대로 주어집니다.
출력설명
자신의 뒷 사람 모두를 시청방해하는 학생수를 출력합니다.
입력예제
10
56 46 55 76 65 53 52 53 55 50
출력예제
3
#include <stdio.h>
int height[101];
int main(){
freopen("input.txt", "rt", stdin);
int i, n, count=0, max;
scanf("%d", &n);
for(i=1; i<=n; i++){
scanf("%d", &height[i]);
}
max = height[n];
for(i=n-1; i>=1; i--){
if(height[i] > max){
max = height[i];
count++;
}
}
printf("%d", count);
return 0;
}
문제를보고 배열을 사용해서 풀면되겠다싶어서 선언은 했는데 어떻게 받아야하는지를 몰라서 애먹었네요 ㅎㅎ
반복문에대고 scanf("%d", &배열[i]); 하면 됩니다
이 문제의 핵심은 뒤에서부터 탐색을 하는건데요 앞에서부터 하려고했다가 고생했습니다
우선 맨뒤에 값을 max라는 변수에 담아 놓습니다. 후에 앞으로 하나씩 가면서 현재 max에 담겨있는 값보다 크다면 count++ 하면 됩니다
'알고리즘 > it 취업을 위한 알고리즘 문제풀이' 카테고리의 다른 글
21. 카드게임 (0) | 2021.05.17 |
---|---|
20. 안내면 진거~ 가위바위보! (0) | 2021.05.17 |
18. 층간소음 (0) | 2021.05.17 |
17. 선생님 퀴즈 (0) | 2021.05.17 |
16. Anagram(아나그램 : 구글 인터뷰 문제) <algorithm> (0) | 2021.05.17 |