본문 바로가기

AP프로그래밍과 문제해결

(5)
5. [Python] 나만의 문제 설계하기 1. 문제 설계 배경최근에 오일러 회로에 대해 공부하게 되었는데, 특정 그래프가 오일러 회로인지를 판별하는 필요충분조건이 매우 간단하다는 점이 인상깊었던 기억이 있다. 이때 특정 그래프가 주어졌을 때 오일러 회로를 구하는 알고리즘도 있지 않을까라는 생각을 했고, 이로부터 오일러 회로를 구해서 풀 수 있는 프로그래밍 문제를 설계해보기로 했다. 2. 문제 설계제목: 전곽이의 사탕 찾기를 도와줘! (시간 제한: 3초) 문제: 전북과학고에 재학 중인 전곽이는 다른 과학고와 함께 진행하는 미션 계주 대회에 전북과학고 대표로 참가하게 되었다. 이 미션 계주는 N개의 장소가 있는 주어진 코스에서 모든 S개의 길에 각각 하나씩 숨겨져 있는 사탕을 찾고 시작점으로 돌아오는 것이었다. 길을 제대로 찾지 못하여 각각의 길을..
4. [Python] 객체지향 프로그래밍: One-card game 1. 객체지향 개념 설명객체지향 프로그래밍(Object-Oriented Programming, OOP)은 프로그램을 객체(object)라는 단위로 나누어 개발하는 방식이다. 객체는 데이터(속성)와 이를 조작하는 코드(메서드)를 포함하고 있으며, 이들을 통해 프로그램의 구조와 기능을 정의할 수 있다. 객체지향 프로그래밍의 주요 개념으로는 클래스(class), 객체(object), 상속(inheritance), 다형성(polymorphism), 캡슐화(encapsulation), 추상화(abstraction) 등이 있다. 각각의 개념에 대해 파이썬을 이용하여 개념을 구현하는 예제 코드를 덧붙여서 설명하겠다.클래스(Class)클래스는 객체를 생성하기 위한 청사진(또는 틀)이다. 클래스는 속성(데이터)과 메서드..
3. [Python] BOJ 2014 소수의 곱 1. 문제 링크 https://www.acmicpc.net/problem/2014 2014번: 소수의 곱 첫째 줄에 K(1 ≤ K ≤ 100), N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 K개의 소수가 오름차순으로 주어진다. 같은 소수가 여러 번 주어지는 경우는 없으며, 주어지는 소수는 모두 541보다 작거나 www.acmicpc.net 2. 문제 선정 과정 및 문제 내용 5월 과제 역시 자료구조를 활용한 도전적인 프로그래밍 문제 해결이었다. 나는 3, 4월에 공부했던 트리, 스택 말고 다른 자료구조를 사용하는 문제를 풀고 싶었고, 이에 선택한 문제가 바로 '힙' 자료구조를 이용하는 문제인 본 문제였다. 본 문제가 문제의 내용 자체를 이해하기에도 어렵지 않았고 내게 많은 흥미를 불러일으켰..
2. [Python] BOJ 3015 오아시스 재결합 0. 사전 조사(자료구조) 자료구조는 데이터를 효율적으로 관리하고 처리하기 위한 방법이다. - 자료구조의 종류 단순 자료구조: int, float, char 등 프로그래밍 언어에서 통상적으로 제공되는 기본 데이터 형식이다. 선형 자료구조배열(Array): 동일한 타입의 데이터를 연속적으로 저장하는 자료구조로, 인덱스를 통해 빠르게 접근할 수 있다.연결 리스트(Linked List): 각 노드가 데이터와 다음 노드를 가리키는 포인터로 구성된 자료구조로, 메모리를 효율적으로 사용할 수 있다.스택(Stack): 후입선출(LIFO) 방식으로 데이터를 저장하고 처리하는 자료구조이다.큐(Queue): 선입선출(FIFO) 방식으로 데이터를 저장하고 처리하는 자료구조이다. 비선형 자료구조트리..
1. [Python] BOJ 2243 사탕상자 0. 탐색 기반 설계 및 관계 기반 설계 탐구 3월 주제가 탐색 기반 설계 및 관계 기반 설계를 탐구하고 관련 문제를 해결하는 것이었기 때문에 관련 내용을 먼저 조사했다. 탐색 기반 설계: 주어진 문제에서 주어진 데이터를 특성에 맞도록 구조화하고 이 자료를 적절한 방법으로 탐색해 나가면서 원하는 해를 찾는 알고리즘 설계법. 전체를 탐색하는 전체탐색법과 탐색할 영역을 적절한 방법으로 배제하여 탐색의 효율을 높은 부분 탐색법이 있다. 또한 구조에 따라 선형 구조와 비선형 구조로 나눌 수 있다. 선형 구조 탐색: 자료의 순서를 유일하게 결정할 수 있는 형태의 구조. i번째 자료를 탐색한 다음, i+1번째 자료를 탐색하는 방식이다. 순차탐색과 이분 탐색이 존재한다. 비선형 구조 탐색: i번째 원소를 탐색한 다음..