[BOJ] #11505 구간 곱 구하기
시간 제한 메모리 제한 정답 비율 1 초 256 MB 33.686 % 11505번: 구간 곱 구하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 곱을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄 www.acmicpc.net 문제 해결 key point, 세그먼트 트리, '최솟값'과 방식 동일 2021/02/15 - [🔥 PS(Problem Solving) 🔥/BOJ] - [BOJ] #10868 최솟값 위에 보이는 최솟값 문제와 방법은 동일하나 구간의 곱을 구해야 하는 문제이다. 따라서, 초기화를 따로 해줄 필요가 없고, update 함수에서 seg[i]..
2021. 2. 15.
[BOJ] #1509 팰린드롬 분할
시간 제한 메모리 제한 정답 비율 2 초 128 MB 46.610% 1509번: 팰린드롬 분할 세준이는 어떤 문자열을 팰린드롬으로 분할하려고 한다. 예를 들어, ABACABA를 팰린드롬으로 분할하면, {A, B, A, C, A, B, A}, {A, BACAB, A}, {ABA, C, ABA}, {ABACABA}등이 있다. 분할의 개수의 최솟값을 출력하 www.acmicpc.net 문제 해결 key point, '팰린드롬?' 문제를 활용, d[i]는 i번째까지 문자열의 팰린드롬 분할 최솟값. DP j번째 부터 i번째까지 팰린드롬인지 아닌지를 저장한 배열 c[j][i]를 활용해서 → 팰린드롬? 문제 활용 j~i까지의 문자열이 팰린드롬이라면 → c[j][i] == true d[i]는 d[j - 1] + 1이다..
2021. 2. 9.
[BOJ] #2632 피자판매
시간 제한 메모리 제한 정답 비율 2 초 128 MB 36.331 % 2632번: 피자판매 첫 번째 줄에는 손님이 구매하고자 하는 피자크기를 나타내는 2,000,000 이하의 자연수가 주어진다. 두 번째 줄에는 A, B 피자의 피자조각의 개수를 나타내 는 정수 m, n 이 차례로 주어진다 (3 ≤ m, n www.acmicpc.net 문제 해결 key point, 원형, 누적합, 부분합, 완전탐색 배열 크기 유의하기. 처음에 배열을 작게 잡아서 계속 시간초과가 났었다. → 5번 줄 피자가 원형이기 때문에 `왼→오` 방향으로 누적합을 구하고, `오→왼` 방향으로도 누적합을 구한다. → 13, 19번 줄 부분 합을 구할 때는 j를 `i + n - 1` 이전까지 반복한다. → 23, 38번 줄 실제 sumA,..
2021. 2. 5.