728x90
https://school.programmers.co.kr/learn/courses/30/lessons/169198
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
이런이런 1레벨에서 2레벨로 올라가다니 충분히 어려웠다
처음에 무슨 이상한 방법 다 생각해도 틀려서 풀지 못할뻔했지만 그딴 건 없다 결국 힌트는 입사각과 반사각이 같다는 것 공이 튕기는 방향으로 선을 그으면 닮음 삼각형 2개가 생긴다 밑변의 길이는 알 수 있고 각도가 같으니까 서로 비율도 일정해서 각각 cos, sin 값의 비율을 구해서 적용하면 거리도 구할 수 있다 생각보다 간단하게 끝난다
모서리에 대한 설명이 있어서 경우의 수도 생각했지만 모서리에 맞는 경우는 없었다 왜 적어놓냐 진짜
def solution(m, n, x1, y1, bal):
def f(x1,y1,x2,y2):
a=abs(y2-y1)*(x1/(x2+x1))
if a==a*(x2/x1)==0 and x1>x2:return 10000000000
return ((a**2+x1**2)**0.5+((a*(x2/x1))**2+x2**2)**0.5)**2+0.001
return [int(min(f(x1,y1,x2,y2),f(m-x1,y1,m-x2,y2),f(y1,x1,y2,x2),f(n-y1,x1,n-y2,x2))) for x2,y2 in bal]
'알고리즘 > 프로그래머스' 카테고리의 다른 글
자동차 대여 기록 별 대여 금액 구하기 (0) | 2023.03.26 |
---|---|
광물 캐기 (0) | 2023.03.24 |
우박수열 정적분 (0) | 2023.03.20 |
게임 맵 최단거리 (0) | 2023.03.19 |
2개 이하로 다른 비트 (0) | 2023.03.18 |
댓글