코딩문제풀이/파이썬

[프로그래머스] 당구 연습 (파이썬)

오늘밤공부 2023. 3. 21. 10:00
반응형

🗓️ 문제 설명

  • 당구대의 가로 길이 m, 세로 길이 n과 쳐야 하는 공이 놓인 위치 좌표를 나타내는 두 정수 startX, startY, 그리고 매 회마다 목표로 해야하는 공들의 위치 좌표를 나타내는 정수 쌍들이 들어있는 2차원 정수배열 balls가 주어집니다. 
  • "원쿠션" 연습을 위해 공을 적어도 벽에 한 번은 맞춘 후 목표 공에 맞힌다고 할 때, 각 회마다 공이 굴러간 거리의 최솟값의 제곱을 배열에 담아 반환하세요.
  • 단, 공이 벽에 부딪힐 때, 진행 방향은 항상 입사각과 반사각이 동일하며, 만약 꼭짓점에 부딪힐 경우 진입 방향의 반대 반향으로 공이 진행됩니다. 
  • 제한 사항
    • 3 ≤ m, n ≤ 1000
    • 0 < startX < m
    • 0 < startY < n
    • 2 ≤ balls의 길이 ≤ 1000
    • balls의 원소는 [a, b] 형태
      • a, b는 머쓱이가 맞춰야 할 공이 놓인 좌표를 의미
      • 0 < a < m, 0 < b < n
      • (a, b) = (startX, startY)인 입력은 들어오지 않음
  • 입출력 예시
m n startX startY balls result
10 10 3 7 [[7, 7], [2, 7], [7, 3]] [52, 37, 116]

 

💻 코드

최종 코드

  • 수정사항
    >> 동일한 선상에서 가로 혹은 세로로 원쿠션했을 때의 거리를 추가

 

코드 풀이

 

 

⚙️ 시행착오

1차 시도

더보기
  • 테스트 케이스에서 실패 존재

 

반응형