I Think So!

Chapter 05 - 형식 맞추기

형식을 맞추는 목적 오늘 구현한 기능이 다음 버전에서 바뀔 확률은 아주 높다. 하지만 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다. 적절한 행 길이를 유지하라 신문 기사처럼 작성하라 이름은 간단하면서도 설명이 가능하게 짓는다. 소스 파일 첫 부분은 고차원 개념과 알고리즘을 설명한다. 아래로 내려갈수...

BOJ-28276(Yawned-Zoned)

문제 링크 원래 특정 문제에 대한 포스팅은 지양하는 편이지만, 이 문제는 나를 너무 고생시킨 기념으로 포스팅한다. 주아이디어 기본적인 아이디어는 “매개 변수 탐색”이다. 주어진 C번 만큼만 끊어서, 특정 숫자((min+max)/2)만 하품하는 경우를 만들 수 있는지 확인하면 된다. 아마 대부분 이 아이디어까지는 금방 도달했으리라 생각한다. 사실...

모스 알고리즘(Mo's algorithm)

개요 모스 알고리즘은 업데이트가 없는 구간 쿼리들을 빠르게 처리하는 알고리즘이다. 이때 쿼리는 구간의 합, 최댓값, 최솟값 등이 될 수 있다. 기본 아이디어는 아주 간단하다. ‘앞선 쿼리로 인해 계산된 값을 최대한 활용하자‘이다. 특히 쿼리의 순서를 자유롭게 바꿀 수 있는 환경(즉, 조회만 하는 경우)에는 앞선 쿼리에서 많은 정보를 다시 이용할 수 ...

거듭제곱, 모듈러 연산, 페르마의 소정리(백준 13977)

백준 13977을 해결하기 위해서는 3가지 테크닉을 알아야한다. 분할정복을 이용한 거듭제곱 모듈러 연산 특징(for 이항계수 모듈러 연산을 위한 역원) 페르마의 소정리(for 이항계수 모듈러 연산) 거듭제곱 1. 일반적인 거듭제곱 : $O(n)$ 일반적인 거듭제곱의 코드는 다음과 같다. // 재귀함수를 이용한 거듭제곱 int pow(i...