[Python] 30855번 Fraction
https://www.acmicpc.net/problem/30855 24/11/22 ICPC문제 중 흔치 않은 파이썬 친화적인 문제다. 문제 접근 방식: 파이썬에서는 fractions 모듈이 존재한다. 이 모듈은 유리수를 정확하게 저장해준다. 분모와 분자는 자동적으로 약분을 해서 저장된다. 문제는 굉장히 간단하다. $(a, b, c)$의 형태로 주어질 때, $a + b/c$의 값을 기약 분수로 출력하는 것이 목적이다. $a, b, c$는 숫자 혹은 또 다른 $(a, b, c)$형태의 괄호 문자열이 될 수 있다. 스택을 통해 해결할 수 있다. 예외를 처리하는 부분이 많은데, 그냥 raise문을 통해 Error를 띄우도록 하면 처리가 간편해진다. 예를 들어, 열린 괄호가 있는데 닫히지 않는다라던지, 맨 ..
[Python] 4185번 Colliding Traffic
https://www.acmicpc.net/problem/4185 24/11/21 이전에 북마크 해두었던 문제 중 하나로, 약간의 케이스 분류를 동반한 수학적 방법으로 해결했다. 문제 접근 방식: 문제의 입력은 다음과 같다. 테스트 케이스가 $C$개 주어진다. 각 테스트 케이스 마다 보트의 개수인 $N$개와, 두 보트가 서로 $r$ 미터 안에 있으면 충돌한다고 판정하는 실수 $r$이 주어진다. 이후에는 $N$개의 보트에 대한 정보가 다음과 같이 주어진다.$x, y, d, s$. 여기서 $x, y$는 보트의 초기 위치이고, $d$는 보트의 각도, $s$는 보트의 속력을 나타낸다. $d=0$이라면 북쪽을, $d=90$이라면 동쪽을, 그런 식으로 시계 방향과 60분법으로 각도가 표현된다. 문제에서 요구하는..