본문 바로가기

cospro2급/cospro_6차

2021-05-28 / 1번 문제

저는 따뜻한 날이 좋아요.

 

문제 설명

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] 이라 표현한다.

 

 

 

goorm

구름은 클라우드 기술을 이용하여 누구나 코딩을 배우고, 실력을 평가하고, 소프트웨어를 개발할 수 있는 클라우드 소프트웨어 생태계입니다.

www.goorm.io

 

'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