쉬움 0명 해결 정답률 0%

온도 센서 어댑터

화씨, 켈빈, 섭씨 센서의 측정값을 하나의 섭씨 인터페이스로 변환합니다.

배우게 될 내용

  • 서로 다른 형식을 하나의 인터페이스로 감싸기
  • 화씨와 켈빈을 섭씨로 바꾸기
  • 단위 접두사와 값 읽기

문제

원문 보기 (영어)

adapter 패턴은 하나의 인터페이스를 기대하는 코드가 다른 인터페이스를 제공하는 객체와 함께 동작할 수 있게 해줍니다. 여기서는 대시보드가 섭씨만 이해하지만, 센서들은 서로 다른 단위로 값을 보고합니다.

각 측정값은 단위 문자, 콜론, 그리고 값으로 이루어집니다:

  • C:<value>: 이미 섭씨입니다.
  • F:<value>: 화씨이며, (F − 32) × 5 / 9로 변환합니다.
  • K:<value>: 켈빈이며, K − 273.15로 변환합니다.

sensor_adapter(readings)를 구현하세요.

Input

readings: 원시 센서 측정값들입니다.

Output

각 측정값을 섭씨로, 순서대로 반환하세요. 1e-6 이내의 오차는 허용됩니다.

제약 조건

1 ≤ 측정값 수 ≤ 1,000

−1,000 ≤ 값 ≤ 1,000

예시

예시 1
입력:
readings = ["C:21.5", "F:212", "K:273.15"]

예상 출력:
expected = [21.5, 100.0, 0.0]
입력:
std::vector<std::string> readings = {"C:21.5", "F:212", "K:273.15"};

예상 출력:
std::vector<double> expected = {21.5, 100.0, 0.0};
입력:
string[] readings = new string[] {"C:21.5", "F:212", "K:273.15"};

예상 출력:
double[] expected = new double[] {21.5, 100.0, 0.0};

설명

21.5 °C는 그대로입니다; 212 °F는 (212 − 32) × 5 / 9 = 100 °C입니다; 273.15 K는 0 °C입니다.

예시 2
입력:
readings = ["F:-40"]

예상 출력:
expected = [-40.0]
입력:
std::vector<std::string> readings = {"F:-40"};

예상 출력:
std::vector<double> expected = {-40.0};
입력:
string[] readings = new string[] {"F:-40"};

예상 출력:
double[] expected = new double[] {-40.0};

설명

−40은 두 단위에서 같습니다: (−40 − 32) × 5 / 9 = −40.

접근 방법

먼저 스스로 풀어 본 뒤 힌트를 하나씩 열어 보세요.

힌트 1

콜론 앞의 글자가 단위를 알려 줍니다.

힌트 2

측정값마다 알맞은 공식으로 섭씨로 바꾸세요.

힌트 3

콜론 뒤의 수는 음수를 포함해 소수로 읽으세요.

예상 복잡도

시간 O(측정값 수), 추가 공간 O(측정값 수)

참고 자료

이 문제는 CodeUtility에 맞게 수정되었습니다. 위의 설명과 제한 조건을 따르세요.

다른 사람의 풀이 보기

커뮤니티 솔루션

아직 공개된 풀이가 없습니다. 문제를 풀고 첫 풀이를 공유하세요.