본문 바로가기
알고리즘/CodeUp PS

[CodeUp][Python] 1255번 : 두 실수 사이 출력하기

by 빛밤하늘 2021. 9. 2.
반응형

밑의 링크는 CodeUp에서의 문제 링크입니다.

문제는 링크를 통해서 직접 봐주시길 바랍니다.

 

두 실수 사이 출력하기

※ float을 사용하면 정확한 답이 나오지 않습니다.(문제 게시판 참조1106)

codeup.kr

 

 

 

주의해야 할 점

1. map, split을 사용하는 입력 방식

실수나 정수인 여러 값들이 입력값일 때,

split 메서드를 사용해 공백이나 어떤 문자를 기준으로 입력값을 여러 값들로 분리하고,

map 내장 함수로 각각의 값들을 int형이나 float형으로

정수, 실수 자료형으로 변환하는 하는 기법은 매우 많이 쓰입니다.

코드 이해부터 하고 나면 다른 문제에서도 외운 듯이 사용해봅시다.

num1, num2 = map(float, sys.stdin.readline().split())

 

2. double 자료형, float 자료형

문제에서 도움말을 보면

 

'float을 사용하면 정확한 답이 나오지 않습니다.(문제 게시판 참조1106)'

 

이라고 주의사항을 말하고 있습니다.

이는 C, C++, Java로 제출할 때의 유의사항입니다.

저처럼 파이썬으로 코드를 짤 때는 그냥 float 내장 함수를 사용해 실수로 형 변환을 하면 됩니다.

애초헤 파이썬에는 float로만 실수를 표현하고 double로 실수를 표현하는 방법이 없습니다.

파이썬에서는 float 내장 함수의 반환형이

C, C++, Java의 double 자료형과 동일하게 동작하고 정밀도도 같다고 합니다.

 

3. 소수점 이하 2자리로 출력

출력 예시를 보면 2를 출력할 때도 2.00인 소수점 둘째 자리까지로 출력하고 있습니다.

 

예제 설명

1. 첫 번째 예제

- 입력

2.00 2.03

 

- 출력

2.00 2.01 2.02 2.03

 

- 설명

입력한 두 실수 a, b는 2.00, 2.03입니다.

a, b까지 0.01 간격으로 출력해야 하므로, 2.00, 2.01, 2.02, 2.03을 공백으로 구분해 출력합니다.

 

생각한 풀이 과정

a <= b인 두 실수 a, b를 공백으로 구분해 입력합니다.

 

a가 b 이하라면 계속 반복하는 반복문을 만듭니다.

a의 값을 소수점 둘째 자리까지 출력합니다.

a의 값에 0.01을 더해줍니다.

 

 

제출한 파이썬 코드

# readline을 사용하기 위해 import합니다.
from sys import stdin


# 두 실수 a, b를 공백으로 구분해 입력합니다.
# a <= b
# 각각 float형으로 변환합니다.
a, b = map(float, stdin.readline().split())

# a가 b 이하면 계속 반복하는 반복문을 만듭니다.
while a <= b:
    # a를 소수점 둘째 자리까지 출력합니다.
    print('%.2f' % a)

    # a에 0.01을 더해줍니다.
    a += 0.01

 

제출 결과

CodeUp 1255번 : 두 실수 사이 출력하기에서 코드 제출 결과
CodeUp 1255번 : 두 실수 사이 출력하기에서 코드 제출 결과

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

※ 공감 버튼과 구독 버튼도 잊지 말고 꾹 눌러주시면 감사하겠습니다~👍👍

반응형

댓글