안녕하세요 aim_higher 입니다. 코드포스 Round #839 (Div. 3) 코드리뷰 및 업솔빙입니다. A. A+B? https://codeforces.com/contest/1772/problem/A String(문자열) {a}+{b}의 문자열 형태로 입력이 들어오므로, 아스키 코드값인 a+b에 -'0'씩 두번 해주시면 정답이 나옵니다. B. Matrix Rotation https://codeforces.com/contest/1772/problem/B Implementation(구현) 2x2의 이산적인 정수로 구성된 행렬이 있습니다. 다음 두 조건을 만족해야 "아름답다"라고 표현할 수 있습니다. - 각 열에 대해, 첫번째 원소 < 두번째 원소 - 각 행에 대해, 첫번째 원소 < 두번째 원소 2x..
안녕하세요 aim_higher 입니다. 코드포스 Round #812 (Div. 2) 코드리뷰 및 업솔빙입니다. A. Traveling Salesman Problem https://codeforces.com/contest/1713/problem/A Implementation(구현) 좌표평면 위에서 (0, 0)부터 스타트해서 주어진 점들을 찍고 다시 (0, 0)로 돌아와야 합니다. 이때, 주어지는 점은 x축 위거나 y축 위로만 주어진다고 합니다. (다행) 문제에서 요구하는 조건에 만족하기 위해서 총 소요되는 이동 수를 출력하면 됩니다. (0, 0)으로 부터 왼쪽으로 가장 먼곳, 오른쪽으로 가장 먼곳 위쪽으로 가장 먼곳, 아래쪽으로 가장 먼곳 의 거리를 다 더해서 2를 곱하면 됩니다. 왜냐하면 해당 위치로 갔..
안녕하세요 aim_higher 입니다. 코드포스 Round #811 (Div. 3) 코드리뷰 및 업솔빙입니다. A. Everyone Loves to Sleep https://codeforces.com/contest/1714/problem/A Implementation(구현) H시 M분에 Vlad라는 친구가 잠을 잡니다. 하지만, n개의 알람들이 설정이 되어있어 Vlad의 알람이 울리는 순간 수면은 종료됩니다. 이때, Vlad가 얼마나 잠을 잘 수 있는지를 출력하시면 됩니다. 이때, 유의하셔야 할 점이 있는데요 잠든 시간 이전에 설정 되어있어서 듣지 못했던 알람들은 다음 날에도 같은 시간에 울린다는 점입니다. 알람의 시와 분을 {h*60+m}형태로 입력받고, 위에 설명한 것처럼 잠든 시간 이전에 설정된 ..
안녕하세요 aim_higher 입니다. 코드포스 Round #806 (Div. 4) 코드리뷰 및 업솔빙입니다. 난이도 관계상 A, B번은 생략하겠습니다. C. Cypher https://codeforces.com/contest/1703/problem/C Implementation(구현) 간단히 문제를 설명하자면, n개의 휠을 가지고 있는 자물쇠가 있습니다. 자물쇠의 한 휠에 대해서 2가지의 시행을 할 수 있습니다. 시행 U : 휠을 한 칸 위로 돌립니다. (9 → 0) 시행 D : 휠을 한 칸 아래로 돌립니다. (0 → 9) 각 휠에 대해서 U, D의 조합으로 이루어진 시행값이 주어지는데요 이러한 시행값을 모두 수행하게 된다면 자물쇠의 결과값이 나올 겁니다. 즉, 최초 상태 → 시행값 → 최종 상태 입니..
안녕하세요 aim_higher 입니다. 코드포스 Round #804 (Div. 2) 코드리뷰 및 업솔빙입니다. A. The Third Three Number Problem https://codeforces.com/contest/1699/problem/A Math(수학) 문제의 요지는 n이 입력으로 들어오면, (a ⊕ b)+(b ⊕ c)+(a ⊕ c) = n 을 만족하는 a, b, c를 출력하면 됩니다. 먼저 저희는 a, b, c의 마지막 비트에 주목해야합니다. 즉, a, b, c가 홀수인지 짝수인지에 따라 나오는 결과값의 홀/짝 유무를 확인해봅시다. i) 홀수가 0개일 때 (0 ⊕ 0)+(0 ⊕ 0)+(0 ⊕ 0) = 짝 ii) 홀수가 1개일 때 (1 ⊕ 0)+(0 ⊕ 0)+(1 ⊕ 0) = 짝 iii..
안녕하세요 aim_higher 입니다. 백준 13977번 : 이항 계수와 쿼리 코드리뷰입니다. Baekjoon Online Judge 11758번: CCW https://www.acmicpc.net/problem/13977 Number Theory(정수론) 문제가 정말 짧네요. nCk를 1,000,000,007로 나눈 나머지를 구하는 문제입니다. 쿼리가 총 M개(M ≤ 100,000), N과 K가(N ≤ 4,000,000, K ≤ N)으로 주어지므로 일반적인 메모이제이션과 재귀를 이용한 방법으로는 TLE를 받게 됩니다 해결기법은 다음과 같습니다 우선, 옛날에 배웠던 조합의 성질을 더듬어보며 다음의 식을 떠올립니다. nCr = n! / r! * (n-r)! nCr이 모두 x! 와 같은 팩토리얼의 형태로 변..
안녕하세요 aim_higher 입니다. 백준 11758번 : CCW 코드리뷰입니다. Baekjoon Online Judge 11758번: CCW https://www.acmicpc.net/problem/11758 Geometry(기하학) 2차원 좌표 평면 위에 있는 3개의 점 P1(x1, y1), P2(x2, y2), P3(x3, y3)을 순서대로 이은 선분이 어떤 방향(반시계 방향, 시계 방향, 일직선)을 이루고 있는지 판별하는 문제입니다. 입력값에 대한 추가적인 명시사항은 이렇습니다. P1 -> P2 -> P3 순서대로 이음 P1, P2, P3의 좌표는 서로 다름 입력값은 정렬되지 않은 채로 오지만 상관없습니다. P1, P2, P3 세 점을 쉽게 A, B, C로 부르겠습니다. 점 A, B, C 순서쌍..