728x90
지난번에 덜 푼 문제 이어풀기
9-7) 백준 1085번: 직사각형에서 탈출
x,y,w,h = map(int, input().split())
a = []
a.append(x)
a.append(y)
a.append(w-x)
a.append(h-y)
print(min(a))
그려진 사각형을 벗어나는 수 중 최솟값을 구하기
9-8) 백준 3009번: 네 번째 점
a = []
b = []
for i in range(3):
x,y = map(int, input().split())
a.append(x)
b.append(y)
for i in range(3):
if a.count(a[i]) ==1:
x = a[i]
if b.count(b[i]) ==1:
y = b[i]
print(x,y)
보통 직사각형이 (a,b), (c,d), (a,d), (c,b)로 이루어진다는 점으로 풀이
리스트에 값을 넣고, 갯수를 세서 그 수가 1번밖에 나오지 않으면 그 수가 필요하므로 출력
9-9) 백준 4153번: 직각삼각형
a=[]
x,y,z = (map(int, input().split()))
a.append(x)
a.append(y)
a.append(z)
while (x!=0 and y!=0 and z!=0):
a.sort()
if a[0]**2 + a[1]**2 == a[2]**2:
print("right")
else:
print("wrong")
a=[]
x,y,z = (map(int, input().split()))
a.append(x)
a.append(y)
a.append(z)
피타고라스 공식 사용
9-10) 백준 3053번: 택시 기하학
import math
a = int(input())
print(round(a*a*math.pi,6))
print(a*a*2)
입력값 a에 대해 우리가 아는 원주율을 사용해 원의 넓이를 구하고 a*a*2를 해준 값 출력
9-11) 백준 1002번: 터렛
T = int(input())
for i in range(T):
x1, y1, r1, x2, y2, r2 = map(int, input().split())
d = (((x1-x2)**2) + ((y1-y2)**2)) **0.5
if d ==0 and r1 == r2: #두 원이 동심원이고 반지름의 길이 같을 때
print("-1")
elif abs(r1-r2) == d or r1 + r2 == d: #내접, 외접일 때
print("1")
elif abs(r1-r2)<d < (r1+r2): #두 원이 서로 다른 두 점에서 만날 때
print("2")
else:
print("0")
두 원의 교점의 개수를 구하면 해결 가능한 문제
r1 + r2< d: 교점 x
|r1-r2| > d: 교점 x
d = 0 이고, r1 = r2: 교점 무한개(두 원이 완전 일치)
r1 + r2 = d: 교점 1개(외접하는 경우)
|r1-r2| = d: 교점 1 개(내접하는 경우)
r1+r2 < d < r1-r2: 교점 2개
d = (((x1-x2)^2) + ((y1-y2)^2)) ^0.5
위의 방법을 그대로 코딩으로만 옮기면 끝
728x90
'ⓒⓞⓓⓘⓝⓖⓣⓔⓢⓣ > ⓟⓨⓣⓗⓞⓝ' 카테고리의 다른 글
[python] 단계별로 풀어보기 - 11단계 (0) | 2021.05.06 |
---|---|
[python] 단계별로 풀어보기 - 10단계 (0) | 2021.05.01 |
[python] 단계별로 풀어보기 - 9단계(1~6) (0) | 2021.05.01 |
[python] 단계별로 풀어보기 - 7단계 (0) | 2021.04.29 |
[python] 단계별로 풀어보기 - 6단계 (0) | 2021.04.26 |
댓글