[출처 : Goorm 사이트 - Yun Goon]
문제
모든 언어에 대해 시간 제한 1초, 메모리 제한 512MB입니다.
아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 6, 9, 7, 6, 4, 6 이다. 일렬로 세워진 막대기를 오른쪽에서 보면 보이는 막대기가 있고 보이지 않는 막대기가 있다. 즉, 지금 보이는 막대기보다 뒤에 있고 높이가 높은 것이 보이게 된다. 예를 들어, 그림과 같은 경우엔 3개(6번, 3번, 2번)의 막대기가 보인다.
N개의 막대기에 대한 높이 정보가 주어질 때, 오른쪽에서 보아서 몇 개가 보이는지를 알아내는 프로그램을 작성하려고 한다.
입력 형식
- 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 막대기의 개수를 나타내는 정수
이 주어지고 이어지는 N줄 각각엔 막대기의 높이를 나타내는 정수
가 주어진다.
출력 형식
표준 출력으로 오른쪽에서 N개의 막대기를 보았을 때, 보이는 막대기의 개수를 출력한다.
채점 기준
제출된 프로그램은 여러 개의 테스트 케이스로 평가되며, 맞은 테스트 케이스에 대해서 해당 테스트 케이스에 배정된 점수를 받는다. 모든 테스트 케이스를 맞았을 시 100점을 받는다.
각 테스트 케이스에 대한 배점 정보와, 제약 조건은 다음과 같다:
- 그룹 1: 총 12점 상당의 테스트 케이스로 구성되어 있다. 각각
를 만족한다.
- 그룹 2: 총 15점 상당의 테스트 케이스로 구성되어 있다. 각각
를 만족한다
- 그룹 3: 총 36점 상당의 테스트 케이스로 구성되어 있다. 각각
을 만족한다.
- 그룹 4: 총 37점 상당의 테스트 케이스로 구성되어 있다. 추가적인 제약 조건이 없다.
예시
풀이
key) 뒤에서 봣을때 본인 포함 본인보다 큰 값의 개수를 구하는 게 아니라!!
=> 맨마지막 요소에서 첫번째 요소로 되돌아가면서 순회한 막대기중 가장 긴 것보다 더 긴 길이일 때만 카운트 하는 문제!
쉬운거 부터
1. 입력설정
막대기의 개수 n 과 각각 막대기의 높이 h[n], h 는 n 만큼 반복 입력
scanf("%d", &n);
for(int i=0; i<n; i++){
scanf("%d", &h[i]);
}
입력 완료!
2. 출력설정
마지막 막대기 포함 보이는 개수
printf("%d", count);
3. 변수 설정
int n;
int h[100000]={0,};
int count=1; //시작부터 마지막꺼 포함
후에 int temp 도 필요하게 되었다.
4. 알고리즘 띵킹
처음 입력하면 배열 앞부터 차례대로 막대높이가 입력된다.
-> 마지막 기준으로 배열 첫번째 요소로 돌아가면서 지금까지 순회한 막대기중 가장 긴 것보다 더 긴 길이일 때만 카운트 해주면 된다.
처음보다 길이 긴 막대 있음 그걸로 temp 저장하고 카운트 +1 -> 배열 0번 요소까지 반복 -> 카운트 출력
1) for 문으로 반복 비교해보기
temp = h[n - 2];
for (int j = n - 2; j >= 0; j--) {
if (h[j] > temp) {
temp = h[j];
count++;
}
}
작성해보기!
결과코드
#include <stdio.h>
int main() {
int n;
int h[100000]={0,};
int count=1; //시작부터 마지막꺼 포함
int temp;
//입력부분
scanf("%d", &n);
for(int i=0; i<n; i++){
scanf("%d", &h[i]);
}
//연산
temp = h[n-1];
for(int j=n-2; j>=0; j--){
if(h[j]>temp){
temp=h[j];
count++;
}
}
//출력
printf("%d", count);
}
결과
된다!
ps.. 초등학생들 알고리즘 대회 문제였다... 나는 초딩때 메이플하느라 바빴는데...별수없지 이제라도 열심히
* 개인적인 학습 목적으로 작성한 글이기에 내용에 잘못된 정보가 있을 수 있습니다.
'게임 클라이언트 개발 > 알고리즘 문제' 카테고리의 다른 글
[알고리즘 1단계] 단어의 개수 세기 (0) | 2020.07.20 |
---|---|
[알고리즘 1단계] [KOI 2016] 타일 장식물 (0) | 2020.07.17 |
[알고리즘 1단계] 자동문 (0) | 2020.07.15 |
[알고리즘 1단계] 태민이의 취미 (0) | 2020.07.14 |
[알고리즘 1단계] 고장난 컴퓨터 (0) | 2020.07.13 |