이번 문제는 다른 사칙연산과는 다르게 소숫점 자리를 고려해야 하기 때문에 더 생각해보아야 했다.
이번엔 먼저 파이썬을 도전했다.
파이썬은 이전 사칙연산과 똑같이 작성해도 성공이다.
다른 방법을 찾던 중에 lambda란 방법을 찾아서 한 번 작성해 봤다.
(사실 백준에서는 코드 길이를 최소화하는 것이 더 의미가 있지만
공부를 하는 입장에서 다양한 방법을 찾아보는 것도 나쁘지 않으니까...)
첫 번째 코드에서 lambda를 사용하기 위해 좀 더 코드가 추가되었다.
틀은 똑같다.
lambda는 무엇이냐면
(출처: https://wikidocs.net/24)
이런 것이다.
lambda는
함수를 생성할 때 간결하게 표현할 수 있는 예약어이다.
(내가 만든 코드에서는 간결해지기보다 오히려 길어졌지만...^^;)
C에서는
소숫점 자리를 고려해야 한다.
조건에서 소숫점 10^-9까지 허용한다고 했다.
실수를 표현하는 자료형에는
float과 double이 있는데,
32비트인 float는 소수점 이하 6자리까지,
64비트인 double에서는 소수점 이하 14자리까지 가능하므로
float형이 아닌 double형을 사용해야 한다.
printf에서 double은 f가 아닌 lf라고 써야하는 것도 잊지 말아야 한다.
(9와 l사이에는 커서이다...)
부동소수점을 고려해서 %.10lf라고 써야 한다고 써있기도 했는데,
9이든지 10이든지 둘다 맞앗다고 떴다.
변수 선언할 때 double로 주면 출력에 나눌 때 double을 사용하지 않아도 된다.
그리고 입력을 보니 두 정수를 입력받는 것이라서 %lf보다 %d가 더 정확할 것 같다.
(이렇게 제출해도 맞긴 했으니 문제는 없지만...)
2357. [AtCoder Beginner Contest 073] A. September 9 (0) | 2019.06.29 |
---|---|
[백준(Baekjoon)] 10869번 (사칙연산) (0) | 2019.03.28 |
[백준(Baekjoon)] 10998번 (A*B) (0) | 2019.03.28 |
[백준(Baekjoon)] 11719번 (그대로 출력하기2) (0) | 2019.03.28 |
[백준(Baekjoon)] 11718번 (그대로 출력하기) (0) | 2019.03.28 |