티스토리 뷰
#. Problem
* The copyright in this matter is in Inflearn
#. Resolution Process
1. Read and understand problem
2. Redefine the problem + abstract
3. Create solution plan (select Algorithm, Data structure)
4. Prove the plan (check performance time and usage memory)
5. Carry out the plan
6. Look back on the plan and find a way to improve it
#. Solve
1. 뒷사람 기준이므로 배열의 뒤에서부터 접근해야 할 것 같다.
현재 키가 가장 큰 사람 키를 저장해두고 그보다 큰 사람이 자신의 앞에 있을 경우 그 사람은 분노유발자이다.
56 46 55 76 65 53 52 53 55 50 이 순서대로 줄을 서 있다고 했을 때, 뒤에서부터 접근해보자
max = 50, 앞에 자신보다 큰 55가 있다. cnt++
max = 55, 자신보다 작은 친구들이 앞에 있다면 continue;
max = 65, 자신보다 큰 65가 있다. cnt++
max = 76, cnt++
이러한 과정으로 하면 될 것 같다.
#. Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #include <cstdio> int stu[100]; int main(void) { freopen("input.txt", "rt", stdin); int n, i, cnt = 0, max; scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d", &stu[i]); max = stu[n - 1]; for (i = n - 2; i >= 0; i--) { if (stu[i] > max) { cnt++; max = stu[i]; } } printf("%d\n", cnt); return 0; } | cs |
#. Other code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include<stdio.h> int main(){ int n, i, cnt=0, h[101], max; scanf("%d", &n); for(i=1; i<=n; i++) scanf("%d", &h[i]); max=h[n]; for(i=n-1; i>=1; i--){ if(h[i]>max){ max=h[i]; cnt++; } } printf("%d\n", cnt); return 0; } | cs |
#. Result
- Input --------------------------------------------------------
10
56 46 55 76 65 53 52 53 55 50
------------------------------------------------------------------
- Output --------------------------------------------------------
3
------------------------------------------------------------------
'PS > Problem_Solving' 카테고리의 다른 글
[Inflearn] 카드게임 (0) | 2020.04.21 |
---|---|
[Inflearn] 가위 바위 보 (0) | 2020.04.21 |
[Inflearn] 층간소음 (0) | 2020.04.21 |
[Inflearn] 선생님 퀴즈 (0) | 2020.04.21 |
[Inflearn] 소수의 개수 (0) | 2020.04.21 |