최신 글
기술과 일상을 함께 기록합니다.
전체 기록
297백분율 변환
Java에서 부분값을 전체값의 백분율로 계산하고 0으로 나누기, 소수점 반올림, 로캘별 표시를 분리해 처리하는 방법을 설명한다.
바이트 단위 변환
바이트를 사람이 읽기 쉬운 이진 단위로 바꾸고, KB와 KiB의 차이 및 0·음수 입력을 처리한다.
[Baekjoon-10844] 쉬운 계단 수
길이와 마지막 자릿수를 DP 상태로 두고 이웃한 숫자에서 이어지는 계단 수를 센다. 0·9 경계와 나머지 연산을 다룬다.
[BaekJoon-11052] 카드 구매하기
마지막에 구매한 카드 팩의 크기로 경우를 나누어 최대 지불액 점화식을 만든다. 팩 조합과 계산 순서를 예제로 추적한다.
[BaekJoon-9095]-123 더하기
마지막에 더한 수가 1·2·3인 경우로 나누어 합의 가짓수 점화식을 만든다. 작은 수의 초기값부터 계산한다.
[BaekJoon-11727]-2xN 타일링 2
마지막 폭 2를 채우는 가로 타일 두 장과 정사각형 한 장을 따로 세어 점화식을 만든다. 작은 폭과 나머지 계산을 확인한다.
[BaekJoon-11726]-2xN 타일링
마지막 타일이 세로 한 장인지 가로 두 장인지로 경우를 나누어 점화식을 만든다. 작은 폭을 추적하고 10007로 나눈다.
[BaekJoon-1463] 1로 만들기
작은 수의 최소 연산 횟수부터 채우는 DP로 1 빼기와 2·3으로 나누기를 모두 비교한다. 탐욕 선택의 반례도 확인한다.
5. 다이나믹 프로그래밍(Dynamic Programming)
중복 부분 문제를 저장하는 동적 계획법의 상태·점화식·계산 순서를 피보나치와 LCS로 익힌다.
[BaekJoon-17087] 숨바꼭질 6
시작점에서 각 동생까지의 거리의 최대공약수를 구해 가능한 최대 보폭을 찾는다. 양방향 거리와 한 명인 경우를 다룬다.
[BaekJoon-9613] GCD 합
서로 다른 두 입력 위치의 모든 쌍을 한 번씩 순회하며 GCD를 누적한다. 큰 합계의 정수형 범위도 확인한다.
[BaekJoon-6588] 골드바흐의 추측
에라토스테네스의 체로 소수를 미리 구하고 작은 소수부터 짝을 시험한다. 첫 분해와 실패 출력 조건을 처리한다.