<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Prefix Sum on Kelly Dev</title><link>https://kelly-chui.github.io/tags/prefix-sum/</link><description>Recent content in Prefix Sum on Kelly Dev</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 08 Jul 2026 14:30:01 +0900</lastBuildDate><atom:link href="https://kelly-chui.github.io/tags/prefix-sum/index.xml" rel="self" type="application/rss+xml"/><item><title>LeetCode 3756. Concatenate Non-Zero Digits and Multiply by Sum II</title><link>https://kelly-chui.github.io/ps/2026/ps-leetcode-3756-concatenate-non-zero-digits-and-multiply-by-sum-ii/</link><pubDate>Wed, 08 Jul 2026 14:30:01 +0900</pubDate><guid>https://kelly-chui.github.io/ps/2026/ps-leetcode-3756-concatenate-non-zero-digits-and-multiply-by-sum-ii/</guid><description>&lt;h2 id="문제"&gt;문제&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://leetcode.com/problems/concatenate-non-zero-digits-and-multiply-by-sum-ii"&gt;https://leetcode.com/problems/concatenate-non-zero-digits-and-multiply-by-sum-ii&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="풀이"&gt;풀이&lt;/h2&gt;
&lt;p&gt;1번 문제와 로직은 동일하다. 차이점은 스트링 &lt;code&gt;s&lt;/code&gt;의 서브스트링에 같은 작업을 &lt;code&gt;queries&lt;/code&gt;마다 반복해야 한다는 점이다.
&lt;code&gt;queries&lt;/code&gt;의 원소가 최대 10만 개이므로, 매 쿼리마다 부분 문자열을 슬라이싱해서 처리하면 시간 초과가 난다. 따라서 전처리를 통해 각 쿼리를 $O(1)$ 혹은 $O(n \log n)$에 처리할 수 있도록 해야 한다.&lt;/p&gt;
&lt;p&gt;전처리 단계에서 네 가지 누적 배열을 만든다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pow10&lt;/code&gt;: $\text{pow10}[i] = 10^i \mod (10^9 + 7)$&lt;/li&gt;
&lt;li&gt;&lt;code&gt;preSum&lt;/code&gt;: 각 인덱스까지 자릿수의 합&lt;/li&gt;
&lt;li&gt;&lt;code&gt;preConcat&lt;/code&gt;: 각 인덱스까지 0이 아닌 숫자들을 이어붙인 값&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nonZeroCount&lt;/code&gt;: 각 인덱스까지 0이 아닌 숫자의 개수&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;쿼리 &lt;code&gt;[l, r]&lt;/code&gt;이 들어오면 네 배열로 &lt;code&gt;x&lt;/code&gt;와 &lt;code&gt;sum&lt;/code&gt;을 $O(1)$에 구해 $x \times \text{sum} \mod (10^9 + 7)$를 리턴한다. 0이 아닌 숫자가 없는 경우는 수식이 자연스럽게 $0$을 리턴하게 된다.&lt;/p&gt;</description></item></channel></rss>