<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://arduwiki.com/html/index.php?action=history&amp;feed=atom&amp;title=2023_%ED%95%9C%EA%B5%AD%EC%A0%95%EB%B3%B4%EC%98%AC%EB%A6%BC%ED%94%BC%EC%95%84%EB%93%9C%28KOI%29_2%EC%B0%A8_%EB%8C%80%ED%9A%8C_%EC%A4%91%EB%93%B1%EB%B6%80</id>
	<title>2023 한국정보올림피아드(KOI) 2차 대회 중등부 - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://arduwiki.com/html/index.php?action=history&amp;feed=atom&amp;title=2023_%ED%95%9C%EA%B5%AD%EC%A0%95%EB%B3%B4%EC%98%AC%EB%A6%BC%ED%94%BC%EC%95%84%EB%93%9C%28KOI%29_2%EC%B0%A8_%EB%8C%80%ED%9A%8C_%EC%A4%91%EB%93%B1%EB%B6%80"/>
	<link rel="alternate" type="text/html" href="https://arduwiki.com/html/index.php?title=2023_%ED%95%9C%EA%B5%AD%EC%A0%95%EB%B3%B4%EC%98%AC%EB%A6%BC%ED%94%BC%EC%95%84%EB%93%9C(KOI)_2%EC%B0%A8_%EB%8C%80%ED%9A%8C_%EC%A4%91%EB%93%B1%EB%B6%80&amp;action=history"/>
	<updated>2026-04-28T21:12:10Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://arduwiki.com/html/index.php?title=2023_%ED%95%9C%EA%B5%AD%EC%A0%95%EB%B3%B4%EC%98%AC%EB%A6%BC%ED%94%BC%EC%95%84%EB%93%9C(KOI)_2%EC%B0%A8_%EB%8C%80%ED%9A%8C_%EC%A4%91%EB%93%B1%EB%B6%80&amp;diff=2892&amp;oldid=prev</id>
		<title>ArduWiki: 새 문서: {{#seo:|title=아두위키 : 한국정보올림피아드(KOI) 기출문제 풀이|title_mode=append|keywords=정보올림피아드, 한국정보올림피아드, KOI, 정올, 정올 1차대회, 정올 2차대회, 사고력, 자료구조, 컴퓨팅 사고력, 프로그래밍 대회, 정올 기출, 2023 KOI, 2023 중등부 2차 대회|description=한국정보올림피아드(KOI) 기출 문제 풀이본을 수록합니다.|image=https://arduwiki.com/html/resources/assets/arduwiki.pn...</title>
		<link rel="alternate" type="text/html" href="https://arduwiki.com/html/index.php?title=2023_%ED%95%9C%EA%B5%AD%EC%A0%95%EB%B3%B4%EC%98%AC%EB%A6%BC%ED%94%BC%EC%95%84%EB%93%9C(KOI)_2%EC%B0%A8_%EB%8C%80%ED%9A%8C_%EC%A4%91%EB%93%B1%EB%B6%80&amp;diff=2892&amp;oldid=prev"/>
		<updated>2026-04-28T09:16:13Z</updated>

		<summary type="html">&lt;p&gt;새 문서: {{#seo:|title=아두위키 : 한국정보올림피아드(KOI) 기출문제 풀이|title_mode=append|keywords=정보올림피아드, 한국정보올림피아드, KOI, 정올, 정올 1차대회, 정올 2차대회, 사고력, 자료구조, 컴퓨팅 사고력, 프로그래밍 대회, 정올 기출, 2023 KOI, 2023 중등부 2차 대회|description=한국정보올림피아드(KOI) 기출 문제 풀이본을 수록합니다.|image=https://arduwiki.com/html/resources/assets/arduwiki.pn...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{#seo:|title=아두위키 : 한국정보올림피아드(KOI) 기출문제 풀이|title_mode=append|keywords=정보올림피아드, 한국정보올림피아드, KOI, 정올, 정올 1차대회, 정올 2차대회, 사고력, 자료구조, 컴퓨팅 사고력, 프로그래밍 대회, 정올 기출, 2023 KOI, 2023 중등부 2차 대회|description=한국정보올림피아드(KOI) 기출 문제 풀이본을 수록합니다.|image=https://arduwiki.com/html/resources/assets/arduwiki.png}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;한국 정보올림피아드(KOI) 기출 문제 풀이과정을 수록합니다.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[파일:KOISolution.jpg|link=https://arduwiki.com/wiki/%ED%95%9C%EA%B5%AD%EC%A0%95%EB%B3%B4%EC%98%AC%EB%A6%BC%ED%94%BC%EC%95%84%EB%93%9C(KOI)|한국정보올림피아드(KOI) 기출 문제 풀이 모음|center|class=coders100]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;[https://codersit.co.kr/oj/problems/1629 1. 스케이트 연습 (초2/중1/고1)]&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
제목 링크를 통해 문제를 확인해주세요.&lt;br /&gt;
&lt;br /&gt;
=== ﻿📄 문제 개요 ===&lt;br /&gt;
N개의 체크포인트(중간 지점)가 있는 스케이트 코스가 있습니다.&lt;br /&gt;
&lt;br /&gt;
* 출발점과 도착점에서의 속력은 반드시 0이어야 합니다.&lt;br /&gt;
* 각 체크포인트에는 넘어서는 안 되는 &amp;#039;&amp;#039;&amp;#039;속력 제한(V)&amp;#039;&amp;#039;&amp;#039;이 있습니다.&lt;br /&gt;
* 속력을 높일 때는 제한 없이 확 높일 수 있지만, &amp;#039;&amp;#039;&amp;#039;속력을 낮출 때는 직전 지점의 속력에서 딱 1만큼만&amp;#039;&amp;#039;&amp;#039; 낮출 수 있습니다.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;목표 :&amp;#039;&amp;#039;&amp;#039; 조건을 지키며 코스를 완주할 때, 각 체크포인트에서 낼 수 있는 속력들의 &amp;#039;&amp;#039;&amp;#039;총합의 최댓값&amp;#039;&amp;#039;&amp;#039;을 구해야 합니다.&lt;br /&gt;
&lt;br /&gt;
﻿&lt;br /&gt;
&lt;br /&gt;
=== 💡 문제 풀이 시뮬레이션 ===&lt;br /&gt;
보통 문제를 풀 때 배열의 처음부터 끝으로 순서대로 탐색하는 것이 일반적입니다.&lt;br /&gt;
&lt;br /&gt;
하지만 이 문제를 앞에서부터 탐색하게 되면 로직이 매우 복잡해집니다.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;속력을 낮출 때는 1씩만 낮출 수 있다&amp;#039;&amp;#039;&amp;#039;는 조건 때문에, 현재 위치에서 속력을 마음 편히 올리려면 앞으로 남은 모든 코스의 속력 제한을 &amp;#039;&amp;#039;&amp;#039;미리 내다보고 계산&amp;#039;&amp;#039;&amp;#039;해야 하기 때문입니다. 이런 상황에서는 탐색의 방향을 완전히 뒤집어 &amp;#039;&amp;#039;&amp;#039;도착점부터 역방향으로 탐색&amp;#039;&amp;#039;&amp;#039;해보는 것이 아주 좋은 해결책이 됩니다.&lt;br /&gt;
&lt;br /&gt;
도착점부터 거꾸로  생각하면, &amp;#039;&amp;#039;&amp;#039;원래의 속력을 최대 1만 낮출 수 있다&amp;#039;&amp;#039;&amp;#039;는 조건은 반대로 &amp;#039;&amp;#039;&amp;#039;속력을 최대 1만 높일 수 있다&amp;#039;&amp;#039;&amp;#039;는 단순한 조건으로 바뀝니다.&lt;br /&gt;
&lt;br /&gt;
[[파일:2023KOI스케이트연습1.png|center|class=coders100]]&lt;br /&gt;
&lt;br /&gt;
도착점의 속력은 무조건 0이기 때문에 도착 지점의 속력 0에서 시작합니다.&lt;br /&gt;
&lt;br /&gt;
각 지점에서의 최대 속력은 ① &amp;#039;&amp;#039;&amp;#039;현재 지점의 속력 제한(V)&amp;#039;&amp;#039;&amp;#039;과 &amp;#039;&amp;#039;&amp;#039;② 다음 지점의 속력 + 1&amp;#039;&amp;#039;&amp;#039; 중 더 작은 값으로 단순하게 결정됩니다.&lt;br /&gt;
&lt;br /&gt;
﻿&lt;br /&gt;
&lt;br /&gt;
=== ﻿💻 코드 구현 ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
import sys&lt;br /&gt;
input = sys.stdin.readline&lt;br /&gt;
&lt;br /&gt;
n = int(input())&lt;br /&gt;
arr = list(map(int, input().split()))&lt;br /&gt;
&lt;br /&gt;
speed = 0    # 현재 위치에서의 최대 속력 (도착점은 0이므로 0부터 시작)&lt;br /&gt;
ans = 0  # 낼 수 있는 속력들의 총합&lt;br /&gt;
&lt;br /&gt;
# 배열의 맨 끝(도착점 직전)부터 첫 번째 지점까지 거꾸로 탐색&lt;br /&gt;
for i in range(n - 1, -1, -1):&lt;br /&gt;
    if speed &amp;lt; arr[i]: # 1. 내 속력을 1 높여도 속력 제한(arr[i])보다 작다면? &lt;br /&gt;
        speed += 1  # 마음 편히 속력을 1 올림&lt;br /&gt;
        &lt;br /&gt;
    else: # 2. 내 속력을 1 높이면 속력 제한을 넘어가 버린다면?&lt;br /&gt;
        speed = arr[i]  # 해당 지점의 제한 속력에 맞춤&lt;br /&gt;
        &lt;br /&gt;
    ans += speed  # 결정된 속력을 정답에 누적&lt;br /&gt;
&lt;br /&gt;
print(ans)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;﻿데이터의 개수 N이 최대 50만 개로 꽤 크지만, 이중 반복문 없이 배열을 거꾸로 한 번만 스캔&amp;#039;&amp;#039;&amp;#039;(시간 복잡도 : O(N))&amp;#039;&amp;#039;&amp;#039;하므로 2초의 시간 제한을 아주 여유롭게 통과합니다. &lt;br /&gt;
&lt;br /&gt;
﻿&lt;br /&gt;
&lt;br /&gt;
=== 📊 정답률 ===&lt;br /&gt;
﻿100점을 받은 학생 비율이 초등부 50% 정도, 중등부 80% 이상, 고등부 90% 이상이었습니다.&lt;br /&gt;
&lt;br /&gt;
초등부 학생들도 2번 문제치고는 난이도가 평이한 수준, 중/고등부에서는 반드시 맞춰야할 쉬운 문제였습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
참고로 풀어볼 만한 문제 링크를 하나 추가했으니, 시간이 나면 풀어보세요.&lt;br /&gt;
&lt;br /&gt;
[https://codersit.co.kr/oj/problems/2087 &amp;#039;&amp;#039;&amp;#039;COCI 6회 &amp;quot;미래를 보는 투자자&amp;quot; 문제 풀이하러가기&amp;#039;&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
﻿&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;[https://codersit.co.kr/oj/problems/1670 2. 호숫가의 개미굴 (초3/중2)]&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
&lt;br /&gt;
추가 예정&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;3. 고기 파티 (초4/중3)&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
&lt;br /&gt;
추가 예정&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;#039;&amp;#039;&amp;#039;4. 지그재그 (중4/고2)&amp;#039;&amp;#039;&amp;#039; ==&lt;br /&gt;
&lt;br /&gt;
추가 예정&lt;/div&gt;</summary>
		<author><name>ArduWiki</name></author>
	</entry>
</feed>