티스토리 뷰
[Python] 백준 알고리즘 온라인 저지 3053번 : 택시 기하학
Python3 코드
1) 소수점 자릿수를 지정하지 않은 코드
import math
r = int(input())
print(r*r*math.pi) # 원의 넓이
print(2*r*r) # 택시기하학 원의 넓이
- 소수점을 지정하지 않아도 문제에 맞는다.
2) 소수점 6자리를 지정한 코드
import math
r = int(input())
print(f'{r*r*math.pi:.6f}')
print(f'{2*r*r:.6f}')
Python3 코드 풀이
1. 작성한 코드에 대한 전체적인 풀이 내용
이번 문제는 원의 넓이를 구하는 공식을 코드로 작성하면 되는 문제이다. 원의 넓이는 유클리드 기하학의 공식과 택시 기하학의 공식을 이용한 값을 각각 출력해야 한다.
코드는 두 개로 작성했다. 예제 출력을 보면 출력 값이 소수점 6자리까지만 나와있지만 소수점 자릿수를 제한하지 않고서 답을 제출해도 맞다고 나온다. 그래서 소수점 자릿수를 지정하지 않을 때와 6자리로 지정했을 때의 두 가지 경우의 코드를 모두 작성해보았다.
2. math 모듈을 사용한다.
import math
math 모듈은 여러 가지 수학과 관련된 함수를 이용할 수 있다. 이번 문제에서 파이값을 구하는 pi 함수를 사용하기 위해 math모듈을 불러들였다.
3. 반지름을 입력받고 원의 공식을 코드로 작성한다.>
r = int(input())
print(r*r*math.pi) # 유클리드기하학 원의 넓이
print(2*r*r) # 택시기하학 원의 넓이
□ 유클리드 기하학 원의 넓이 :반지름 x 반지름 x 원주율
우리가 실생활에서 자주 사용하는 동그란 원이 유클리드 기하학 원의 넓이이다. 정점에서 일정한 거리에 있는 점의 집합을 의미한다.
□ 택시 기하학 원의 넓이 : 2 x 반지름 x 반지름
택시 기하학에서의 원은 두 대각선의 길이가 같은 마름모 모양의 정사각형이다. 원의 정의가 정점에서 일정한 거리에 있는 점의 집합을 의미하는데 택시 평면 위에서는 정점에서의 거리가 같은 점의 집합이 마름모 모양의 정사각형이 된다. 택시 평면 위에서 택시가 이동하는 거리가 동일한 점을 이어 보면 알 수 있다. 아래에 모눈종이 같은 택시 평면 위에 택시 기하학의 원이 그려진 그림을 첨부한다.
출처: 네이버 지식백과
4. f-string을 이용해서 소수점 자릿수를 지정할 수 있다.
print(f'{r*r*math.pi:.6f}')
print(f'{2*r*r:.6f}')
f-string은 print 함수 안에서 문자열을 지정하는 따옴표 기호 앞에 f를 접두사로 붙여서 사용한다. f-string은 편리하게 사용할 수 있는 기능이 있는데 문자열 안에서 { } 괄호를 사용하면 { } 괄호 안에 변수에 따라 달라지는 값을 입력할 수 있는 것이다.
실수의 자릿수를 입력할 때는 { } 괄호 안에 {실수. 자릿수 f} 형식으로 입력하면 된다. 예를 들어 실수 타입의 어떤 변수 number가 있을 때 이 number를 소수점 3자리까지로 지정하고 싶다면 {number.3f}라고 입력하면 된다. 이때, f는 실수를 나타내는 서식지정자이다. 문자열은 s, 정수는 d로 표현한다.
f-string에 대해 더 많은 사용 예시가 필요하신 분들을 위해 이전 포스팅 링크를 걸어둔다. ▶ f-string 문자열 포맷팅, 소수점 자릿수 지정
'파이썬 스킬업 > 백준 알고리즘 연습' 카테고리의 다른 글
백준 1002번 [파이썬] 터렛 : 두 원의 위치관계, 원의 방정식 (1) | 2020.07.23 |
---|---|
백준 4153 [파이썬] 직각삼각형 : 피타고라스의 정리 (0) | 2020.07.21 |
백준 3009 [파이썬] 네 번째 점 (1) | 2020.07.19 |