본문 바로가기

cospro2급/cospro_2차

2021-05-11

cospro 7번 문제

섭씨, 화씨 온도 바꾸기

 

문제 설명

화씨 온도(F)를 섭씨온도(C)로, 섭씨온도(C)를 화씨온도(F)로 바꾸려고 한다.

두 온도 사이의 환산 공식은 다음과 같다.

 

화씨온도에서 섭씨온도로 환산 : (화씨온도 - 32) / 1.8 = 섭씨온도

섭씨온도에서 화씨온도로 환산 : (섭씨온도 * 1.8) + 32 = 화씨온도

 

현재 온도 value와 현재 단위 unit이 매개변수로 주어질 때, 환산한 온도의 정수 부분을

return 하도록 solution 함수를 완성한다.

 

매개변수 설명

현재 온도 value와 현재 단위 unit이 solution 함수의 매개변수로 주어진다. 

  unit은 화씨온도 "F"와 value는 섭씨온도 "C" 둘 중 하나로 주어진다. 

  unit이 "F"인 경우 value는 화씨온도를 나타낸다.

  unit이 "C"인 경우 value는 섭씨온도를 나타낸다. 

  value는 -460 이상 1000 이하의 정수이다.

 

return값 설명

환산한 온도의 정수 부분을 return 한다.

  unit이 "F"인 경우 화씨온도에서 섭씨온도로 환산한다.

  unit이 "C"인 경우 섭씨온도에서 화씨온도로 환산한다.

 

예시

 

예시설명

예시 1)

   unit이 "C"이므로 주어진 value는 526C를 나타낸다. 이를 화씨온도로 환산하면 다음과 같다.

 

   (섭씨온도 * 1.8) + 32 = (527 * 1.8)+32 = 980.6

 

   따라서 환산 결과는 980.6F이며, 정수 부분만 return 하면 되므로 980을 return 한다.

 

예시 2)

   unit이 "F"이므로 주어진 value는 980F를 나타낸다. 이를 섭씨온도로 환산하면 다음과 같다.

 

   (화씨온도 - 32) / 1.8 = (980 - 32) / 1.8 = 526.66666

 

   따라서 환산 결과는 526.66666C이며, 정수 부분만 return 하면 되므로 526을 return 한다.

 

코드설명

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(int value, char* unit) {
    int converted = 0; 		//온도 환산 결과, 정수 부분만 return하므로 int형으로 선언한다.
    if (unit[0] == 'C') 	//화씨온도 환산
        converted = (value * 1.8) + 32;
    if (unit[0] == 'F') 	//섭씨온도 환산
        converted = (value - 32) / 1.8;
    return converted;
}

int main() {
    int value = 527;
    char* unit = "C";
    int ret = solution(value, unit);

    printf("solution 함수의 반환 값은 %d 입니다.\n", ret);

    value = 980;
    unit = "F";
    ret = solution(value, unit);

    printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
}

식 계산을 할 때 가장 중요한 것은 괄호이다. 연산자에는 우선순위가 있다. 그 중 가장 높아서 제일 먼저 실행 되는 것은 ()이다. 그렇기 때문에 ()를 맞게 써주지 않으면 원하는 값이 나오지 않는다.

converted = (value - 32) / 1.8; 에서는 괄호를 써주지 않으면 /가 -보다 우선순위가 높으므로 value - 32를 먼저 하는 것이 아닌 32 / 1.8을 먼저 한다. 그 후에 value를 더해주기 때문에 제대로 된 답이 나오지 않는다.

 

 

 

goorm

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

www.goorm.io

 

'cospro2급 > cospro_2차' 카테고리의 다른 글

2021-05-12  (0) 2021.05.12
2021-05-11  (0) 2021.05.11
2021-05-10  (0) 2021.05.10
2021-05-10  (0) 2021.05.10
2021-05-09  (0) 2021.05.09