본문 바로가기

누적합

(2)
[백준] 10986번: 나머지 합 - JAVA 🔗 문제 링크 BOJ 10986번: 나머지 합 10986번: 나머지 합 수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) www.acmicpc.net 📝 풀이 과정 연속된 구간의 합이기 때문에 누적합 방법으로 문제를 풀이해야 한다. 배열의 연속 구간의 합은 $sum[j] - sum[i]$로 구할 수 있는데, 이 합의 M으로 나눈 나머지가 0인 순서쌍을 구해야 한다. $(sum[j] - sum[i]) \% M = 0$이 되고, 모듈러 연산은 분배가 가능하기 때문에 $sum[j]\%M - sum[i]\%M = 0$ 따라서..
[프로그래머스] 광고 삽입 / 2021 KAKAO BLIND RECRUITMENT - JAVA 🔗 문제 링크 [프로그래머스] 광고 삽입 / 2021 KAKAO BLIND RECRUITMENT - JAVA 코딩테스트 연습 - 광고 삽입 시간을 나타내는 HH, H1, H2의 범위는 00~99, 분을 나타내는 MM, M1, M2의 범위는 00~59, 초를 나타내는 SS, S1, S2의 범위는 00~59까지 사용됩니다. 잘못된 시각은 입력으로 주어지지 않습니다. (예: 04:60:24, 11 programmers.co.kr 📝 풀이 과정 100시간을 초로 바꾼다면 360,000으로 순차 탐색이 가능하다는 생각이 들었다. 먼저 계산을 쉽게 하기 위해 모든 시간을 초로 변환하였고, playCnt배열을 만들어 동영상의 시작시간에 + 1을하고 종료 시간에 - 1을 해주었다. 다음으로 전체 배열을 순회하면서 이전..