백준 1004번 - 어린 왕자

백준 1004번 바로가기 나의 풀이 # 입력 import sys read = sys.stdin.readline eq = read().strip().split('-') ans = eq[0] if '+' in ans: ans = sum(map(int, ans.split('+'))) else: ans = int(ans) # 처리 for e in eq[1:]: if '+' in e: e = sum(map(int, e.split('+'))) ans -= int(e) print(ans) CODE REVIEW 한 정점과 원 사이의 거리를 활용한 기하학 문제. (시작점 - 원의중심 거리) = $l_{1}$ , (도착점 - 원의중심 거리) = $l_{2}$ , 반지름을 $r$ 이라 하면, ( $l_{1}$ - $r^2$ ) * ( $l_{2}$ - $r^2$ ) < 0 일 때 경계를 지나갈 수 밖에 없다. 이유: 중간값 정리 ( $l_{1}$ - $r^2$ ) > 0 이면 원 외부에 속함 ( $l_{1}$ - $r^2$ ) < 0 이면 원 내부에 속함 cf) 문제 번호가 천사(1004)라니 왠지 멋진걸?!

2023-6-5 · 1 min · 127 words · Junha

백준 1485번 - 정사각형

백준 1485번 바로가기 첫 번째 시도 # 입력 import sys read = sys.stdin.readline T = int(read().strip()) # 처리 for _ in range(T): d = [] for _ in range(4): x,y=map(int,read().split()) d.append((x,y)) d.sort() if d[0][0] == d[1][0] and d[2][0] == d[3][0] and d[0][1] == d[2][1] and d[1][1] == d[3][1]: print(1) else: print(0) 최종 제출 # 입력 import sys read = sys.stdin.readline T = int(read().strip()) # 처리 def l(a,b): return (a[0]-b[0])**2 + (a[1]-b[1])**2 for _ in range(T): d = [] for _ in range(4): x,y=map(int,read().split()) d.append((x,y)) length = [] for i in range(4): for j in range(i+1,4): length.append(l(d[i],d[j])) if len(set(length)) == 2: print(1) else: print(0) CODE REVIEW 첫 번째 시도에서는 정사각형이 똑바로 놓여있는 경우만 고려해서, 틀!렸!다! 정사각형의 각 변이 x,y축과 평행하지 않는 경우도 있기 때문에 다른 방법을 생각했다. 정사각형의 결정 조건은 “네 변의 길이가 동일하고, 두 대각선의 길이가 같다.“인데, 이 조건대로 길이를 확인해보았다. 점과 점 사이의 거리를 다 구하고, set()안에 집어 넣어준 뒤에 길이의 종류가 2개면 정사각형, 그 외에는 정사각형이 아님! 이라는 논리로 문제를 해결했다.

2023-6-5 · 1 min · 163 words · Junha