[코드포스/Contest] Codeforces Round #647 (Div. 2)
#647 후기 평소에 잘 쓰지 않는 XOR 연산이나 2진수 연산이 나와서 부족함을 많이 느낄 수 있는 대회였다. 이런 부분을 보완해야겠다고 생각이 들었다. #647 문제 A번 Johnny and Ancient Computer - 성공 더보기 정수 a, b가 주어진다. 해야 할 일은 a를 b로 바꾸는데 다음과 같은 작업을 시도할 수 있다. a에 {2, 4, 8, 1/2, 1/4, 1/8} 중 하나를 곱한다. a를 b와 같게 만들기 위한 최소 횟수를 출력하여라. 곱할 수 있는 수는 모두 2의 제곱수이다. 즉 a * (2^n) = b인 n값을 찾는게 문제의 폭표이다. 계산의 편의성을 위하여, b가 a보다 크다고 가정하면, 2^n = b / a 인 n을 찾아야 하고, n이 정수여야하므로 b / a가 정수이고, ..
[코드포스/Virtual] Codeforces Round #620 (Div. 2)
#620 후기 문제 A는 빠르게 풀었는데, 문제 B에서 이상하게 생각하다가 시간놓치고, 문제 C에서 생각을 잘못했는지 구현을 실수했는지 내리 3번 틀려버렸다.. 생각보다 문제 자체는 풀만했는데, 내가 아직 많이 부족하고, 좀 더 많은 문제를 풀어봐야겠다고 생각이 들었다. #620 문제 A번 Two Rabbits - 성공 더보기 좌표 x에 있는 토끼가 1초에 오른쪽으로 a씩, 좌표 y에 있는 토끼가 1초에 왼쪽으로 b씩 이동한다. 몇 초 뒤에 두 토끼가 만날 수 있으면, 필요한 시간을 출력하고, 만나지 못한다면 -1을 출력한다. 걸리는 시간을 T초 라고 생각하면, 각각의 토끼의 위치는 좌측토끼 : x + a * T 우측토끼 : y - b * T 로 표현된다. 시간이 1초, 2초, ... 로 흐르므로, 한 ..