저는 따뜻한 날이 좋아요.
문제 설명
n일 동안 매일매일의 평균 기온이 순서대로 들어있는 배열이 있다. 이때, A번째 일과 B번째 일 사이에서 A, B번째 일보다 기온이 높았던 날은 총 며칠이었는지 구하려 한다.
n일 동안 매일매일의 평균 기온이 순서대로 들은 배열 temperature, temperature의 길이 temperature_len, 두 날짜를 나타내는 자연수 A, B가 매개변수로 주어질 때, A번째 일과 B번째 일 사이에서 두 날짜보다 기온이 높았던 날은 총 며칠인지 return 하는 solution 함수를 완성한다.
매개변수 설명
n일 동안 매일매일의 평균 기온이 순서대로 들은 배열 temperature, temperature의 길이 temperature_len, 두 날짜를 나타내는 자연수 A, B가 매개변수로 주어진다.
temperature의 원소는 -30 이상 50 이하인 정수이다.
temperature_len은 3 이상 30 이하이다.
날짜는 0번째 일부터 시작한다. 즉, temperature의 첫 번째 원소는 0번째 날, 두번째 원소는 1번째 날...을 의미한다.
A, B는 날짜를 나타내는 정수이며, 0 이상 (temperature의 길이 -1) 이하 입니다.
A는 B보다 항상 작다.
return 값 설명
A번째 일과 B번째 일 사이에서 두 날짜보다 기온이 높았던 날은 총 며칠인지 return 한다.
예시
예시 설명
1번째 날 온도는 2이다.
6번째 날 온도는 3이다.
두 날짜 사이에서 두 날짜보다 기온이 높았던 날은 3번째, 4번째 날이다.
따라서 2를 return한다.
코드 설명
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int temperature[], int temperature_len, int A, int B) {
int answer = 0; //두 날짜보다 기온이 높았던 날
for(int i=A+1; i<B-1; i++){ //A번째 날 다음날부터 B번째 날 전까지
if(temperature[i]>temperature[A] || temperature[i]>temperature[B])
answer++;
}
return answer;
}
int main() {
int temperature[] = {3, 2, 1, 5, 4, 3, 3, 2};
int temperature_len = 8;
int A = 1;
int B = 6;
int ret = solution(temperature, temperature_len, A, B);
printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
}
A번째 일과 B번째 일 사이에 값을 구하므로 A+1부터 B-1까지 포문을 돌린다. 또한 조건에서 A는 항상 B보다 작기 때문에 A+1을 초기값으로 준다.
temperature배열에서 temperature[A], temperature[B] 보다 큰 값을 구한다.
A와 B날짜의 기온은 temperature[A], temperature[B] 이라 표현한다.
'cospro2급 > cospro_6차' 카테고리의 다른 글
2021-05-30 / 5번 문제 (0) | 2021.05.30 |
---|---|
2021-05-30 / 10번 문제 (0) | 2021.05.30 |
2021-05-29 / 8번 문제 (0) | 2021.05.30 |
2021-05-29 / 3번 문제 (0) | 2021.05.29 |
2021-05-28 / 2번 문제 (0) | 2021.05.28 |