📄문제
오늘은 수능이 끝난 다음날로 교장선생님은 1, 2학년 재학생들에게 강당에 모여 어벤져스 영화를 보여준다고 하여 학생들이 강당에 모였습니다.
강당의 좌석은 영화관처럼 계단형이 아니라 평평한 바닥에 의자만 배치하고 학생들이 앉습니다.
그런데 만약 앞자리에 앉은 키가 큰 학생이 앉으면 그 학생보다 앉은키가 작은 뒷자리 학생은 스크린이 보이지 않습니다. 한 줄에 앉은키 정보가 주어지면 뒷사람 모두의 시야를 가려영화 시청이 불가능하게 하는 분노유발자가 그 줄에 몇 명이 있는지 구하는 프로그램을 작성하세요.
⬇️ 입력
첫 줄에 한 줄에 앉은 학생수 N(3<=N<=100)이 주어집니다.
두 번째 줄에 N명의 앉은 키 정보(45이상 100이하)가 앞 자리 학생부터 차례대로 주어집니다.
10 56 46 55 76 65 53 52 53 55 50 |
⬆️ 출력
자신의 뒷 사람 모두를 시청방해하는 학생수를 출력합니다.
※ 76, 65, 55 세명이 분노유발자입니다.
3 |
📝 풀이
#include <iostream>
int main()
{
int arr[101];
int N;
scanf_s("%d", &N);
for (int i = 0; i < N; ++i)
scanf_s("%d", &arr[i]);
int ans = N - 1;
for (int i = 0; i < N - 1; ++i)
for (int j = i + 1; j < N; ++j)
if (arr[i] <= arr[j])
{
--ans;
break;
}
printf("%d", ans);
}
- 각 배열에 입력을 받은 후 배열 원소 위치에서 뒤쪽 원소의 값이 모두 작은경우, '분노유발자'가 됩니다.
- 뒤쪽 원소 값이 같거나, 더 큰경우는 '분노유발자'가 아니기에 ans를 하나씩 빼 계산하는 방식으로 정답을 구했습니다.
'algorithms (C++)' 카테고리의 다른 글
[C++] 카드게임 (0) | 2023.10.13 |
---|---|
[C++] 가위 바위 보 (0) | 2023.10.13 |
[C++] 층간소음 (1) | 2023.10.13 |
[C++] 선생님 퀴즈 (0) | 2023.10.13 |
[C++] 아나그램(Anagram) (0) | 2023.10.13 |