안녕하세요 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 입니다. 조금 여담이지만 아는 지인이 저희 집에 방문하였는데, 도메인이 블록체인이신 분이라 그분의 지식의 단편을 조금 들을 수 있었습니다. 그로 인해 약간의 흥미가 동하게 되어 블록체인 개념을 작성하게 되었습니다 언제까지 갈진 모르지만 닿는데까지 해보겠습니다 :) 블록체인은 "데이터를 담고 있는 블록들"이 각각 연결된 분산 데이터 처리 기술입니다. 블록체인은 블록에 거래 내용을 담음. 시간이 지나며 새로운 블록이 생기게 되고 블록들은 순차적으로 서로 연결됨. 기존 데이터 관리와 블록체인의 차이는 데이터를 저장하는 주체가 '하나'가 아닌 '다수'임 블록체인은 다수가 같은 데이터를 갖고 있기에 데이터를 변조하기 어려워 신뢰성을 가질 수 있음 블록에는 헤더(Header)와 거래가..
안녕하세요 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 순서쌍..
안녕하세요 aim_higher 입니다. 최근 사이드 프로젝트를 진행하고 있는데요, 제가 컨벤션을 지키며 커밋 메세지를 작성하는지 되짚어 보았습니다. 모호하게 아는 것보단 그냥 외우는게 나을 듯해 작성해보았습니다. Commit 메세지는 type(제목), body(본문), footer(꼬리말)로 구성 type(태그 / 제목) 많이 쓰는 순서로 정리해봤습니다 Feat: 새로운 기능 추가 Fix: 버그 수정 Design : CSS 등 사용자 UI 디자인 변경 Refactor: 코드 리팩토링 Rename: 파일 혹은 폴더명을 수정하거나 옮기는 작업인 경우 Docs: 문서 수정 Style: 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우 !HOTFIX : 급하게 치명적인 버그를 고친 경우 !BREAKING ..