문제 6207
섭씨(℃)를 화씨(℉)로 변환하는 프로그램을 작성하십시오.
이 때 물의 빙점은 화씨 32도이고 비등점은 화씨 212도(표준 기압에서)입니다.
물의 비등점과 빙점 사이에 정확하게 180도 차이가 납니다.
그러므로 화씨 눈금에서의 간격은 물의 빙점과 비등점 사이의 간격의 1/180입니다.
출처 SW Expert Academy
입력
28
출력
28.00 ℃ => 82.40 ℉
일단 문제를 해결하려면 섭씨를 화씨로 변환하는 식을 찾아야 한다.
물의 빙점 = 어는 점 = 0℃ = 32℉
물의 비등점 = 끓는 점 = 100℃ = 212℉
니까, 1℃ = 1.8℉라는 것을 알 수 있다.
섭씨는 0에서 시작하고 화씨는 32에서 시작하므로 계산 값에 32만 더해주면 된다.
그래서 내가 만든 코드.
1차 시도 Fail(오답)
C = int(input())
print("%0.2f ℃ => %0.2f ℉" % (C, C * 1.8 + 32))
솔직하게 말해서 부동소수점이랑 저 부분은 지난 문제를 봤다. ㅎㅎ
아래 테스트 돌리니까 잘 나왔는데, 오답이래...아 그리고 진짜 이유를 모르겠는데 변수 C 정의할 때 C = input()으로 돌리면 런타임 오류 나더라. 근데 int()로 감싸면 괜찮았어;
2차 시도 Fail(오답)
C = int(input())
print("%0.2f ℃ => %0.2f ℉" % (C, C * 1.8 + 32))
띄어쓰기의 문제인가 해서 다시 따져봤다... 화씨 기호 앞에 띄어 쓰기 두 번 했길래 두 번 했는데 또 답이 아니래ㅠ
3차 시도 Fail(오답)
C = int(input())
print("%0.2f ℃ => %0.2f ℉" % (C, C * 1.8 + 32))
ㅎ => 뒤에도 띄어쓰기 두 번이길래 수정해서 돌려봤다. 테스트 결과값을 잘 나오지만 여전히 오답...ㅠㅠ
저번에 도움 받은 PLOG님의 블로그를 참고했더니 계산 식에서 1.8을 쓰지 않고 9/5라고 분수로 표현하셨더라.
음... 부동소수점 궁금해서 검색했을때 보니까 0.1+0.2의 계산식의 값을 0.3으로 표현하지 않는다고,
부동소수점은 실수를 완벽하게 표현할 수 없는 한계를 갖고 있다는 글을 봤는데 그래선가??
웬만하면 소수점으로 표현하기 보다 분수로 표현하는가봐
근데 이게 나는 이해가 안가는게, 테스트 돌렸을 때 결과값은 맞잖아? 근데 왜 정해진 답에서는 빗겨갔다는걸까?
모로 가도 서울만 가면 되는 것 아닙니꽈아아아아아
4차 시도 Fail(오답)
C = int(input())
print("%0.2f ℃ => %0.2f ℉" % (C, C * 9 / 5 + 32))
아오 오 ㅐ오답인데! 테스트는 제대로 나오는데!
띄어쓰기 또 뭐 문제있냐 ㅠㅠ
5차 시도 Pass
C = int(input())
print("%0.2f ℃ => %0.2f ℉" % (C, 32 + C * 9 / 5))
℉ 앞의 띄어 쓰기 두 칸을 한 칸으로 줄였더니 정답이래; 어이없다 ^^ 오늘도 띄어쓰기 때문에 한 번 더 했구만! 믓찌다!
'Algorithm > SW Expert Amademy' 카테고리의 다른 글
| 6313. 파이썬 내장함수 연습문제 1 (0) | 2022.01.16 |
|---|---|
| 6319. 파이썬 함수 연습문제 2 (0) | 2022.01.16 |
| 6220. 파이썬 if문 연습문제 (0) | 2022.01.14 |
| 6204. 파이썬 변수 연습문제 (0) | 2022.01.10 |
| 나처럼 헤매는 사람을 위한 문제 풀이 화면 설명 (0) | 2022.01.10 |