top of page

"정보올림피아드, 그냥 대회가 아닙니다 – 실력 있는 아이들이 선택하는 이유!"





오늘은

2025년도 한국정보올림피아드

준비와 관련된 소식입니다!


정보올림피아드는 한국에서 개최되는

정보 관련 대회 중에 가장 공신력 있고,

영향력이 있는 대회 입니다.


대회관련 자세한 정보 및 2025년도 주요 변경사항

2024년도 코딩그라운드 수상 기록

아래 게시글을 확인해주세요!



올해 6월 1일로 예정된 정보 올림피아드 대회를 위해

우리 코딩그라운드의 학생들은

올해 초부터 열심히 준비중하고 있습니다.


단순 대회 수상이

코딩그라운드의 교육 지향점은 아니지만

즐겁게 코딩을 배우다보니

쑥쑥 길러진 평소 실력을 썪히기는 아까워서


다양한 알고리즘 문제풀이를 통한 약간의 준비를 거쳐

대회를 참가하고 있답니다!





실제 중등부 수업 사진입니다.


이번에 학생들과 함께 살펴본 문제는

백준 32069번 문제로

24년도 정보올림피아드 2차대회

초등부 2번, 중등부 1번, 고등부 1번 으로 출제되었던 문제입니다





이 문제는 자료구조에 대한 지식

탐색 알고리즘에 대한 이해가 필요한 문제였는데요






단순 문제 해결을 하는 것은

크게 어렵지 않지만

시간 및 메모리 제한을 지켜

전체 점수를 받기 위해서는

적절한 자료구조를 선택하고

연산 횟수를 제한하는 것이

중요한 문제였습니다


from collections import deque
from sys import stdin
input = stdin.readline

l, n, k = map(int, input().split())
coor = list(map(int, input().split()))

visit = set() # 이미 방문한 위치 저장
q = deque()
light = dict() # {위치: 어두운 정도}
for i in range(n):
    visit.add(coor[i])
    light[coor[i]] = 0
    q.append(coor[i])

count = 0
while q:
    i = q.popleft()
    count += 1
    if i - 1 >= 0 and i - 1 not in visit:
        light[i - 1] = light[i] + 1
        visit.add(i - 1)
        q.append(i - 1)
    if i + 1 <= l and i + 1 not in visit:
        light[i + 1] = light[i] + 1
        visit.add(i + 1)
        q.append(i + 1)
    if count == k: # k번째까지 출력할 것이기 때문에 k번 반복 후 종료
        break

light = sorted(light.items(), key=lambda x:x[1]) # 딕셔너리를 value 기준으로 오름차순 정렬
for i in range (k) :
    print(light[i][1])

해당문제의 L 값이




이렇게나 큰 값을 가질 수 있기 때문에,

전체에 대해 탐색을 하기보다는

K번째 값까지만 구하도록 연산하는 것이 포인트 였습니다

역시 문제를 읽을때 제한 사항과 서브태스크도

잘 체크해야 하겠죠?


또한 방문여부 체크를 위한 ' in ' 연산에서

set의 속도가 list 보다 빠르기 때문에

방문여부를 저장하는 자료구조로

set을 선택해주는 것이 좋습니다.

위 코드도 set을 사용 하지 않고 list를 쓸 경우

100점을 받지 못할 수도 있답니다


Deque를 사용하여

pop(0) 연산(popleft) 에서

평균 O(1)의 시간복잡도로 빠르게 처리하는 것도

중요 포인트 였습니다

문제를 풀어내는 것 그 자체도 중요하지만

고득점을 위해서는

어떤 재료를 골라, 어떤 조리방법으로

문제를 해결할 것인가

꼭 고려해서 공부해야겠네요!


앞으로도 학생들과 함께

정보올림피아드 대회를

차근차근 준비해나가도록 하겠습니다


실제 시험 대비 모의고사 진행 등

관련 소식도 앞으로 쭉 업데이트 될 예정이니

많은 관심 부탁드려요!



블럭코딩(로블록스, 스크래치), 파이썬,

대회 및 입시 준비, 내신 대비까지!

코딩그라운드와 함께 하세요:)


문의사항은 언제든 편하게 연락 주세요!

(H : 010-9947-8349)​


👇포항점 상담문의👇



코딩그라운드 포항점학원

경상북도 포항시 남구 효성로 25 2층 Coding Ground

코딩그라운드 본점

서울특별시 은평구 통일로83길 21 2층

코딩그라운드 대전유성점

대전광역시 유성구 원신흥남로41번길 16 303호

코딩그라운드 포항 펜타시티점

경상북도 포항시 북구 흥해읍 펜타시티단지로 25 202동 6층 607호



Comments


4_edited.png

자주 묻는 질문

이용약관

@코딩그라운드

평일

오전 10시 - 오후 6시

공지사항

개인정보처리방침

낮 12시 - 오후 1시 제외(점심시간)

주말/공휴일

영업일 기준 2일 이내 응답

주식회사 더블유엔씨더블유  |  사업자등록번호 733-88-01280  |  경상북도 포항시 북구 흥해읍 한동대학교 창업보육센터 303호 | 서울 사무실 : 은평구 통일로 83길 21, 2층 

대표이사 김우림  |  개인정보관리책임자 정희원   e-mail coding-ground@wncw.kr

COPYRIGHT © WHYNOTUS. ALL RIGHTS RESERVED

bottom of page