본문 바로가기

전체 글

(130)
[파이썬 | 자료구조] 2. 배열(Array) 2. 배열(Array) C, Java에서의 배열은 처음 선언시 데이터의 크기를 지정하여 선언한다. Python에서 배열은 list로 구현되어 있어 데이터의 크기와 상관없이 선언할 수 있다는 장점이 있다.\ 배열은 index를 통해 직접 접근이 가능하다 장점 빠른 접근이 가능하다 단점 데이터의 추가와 삭제에 비용이 많이 사용된다. 선언된 크기를 초과하여 데이터를 추가하거나, 데이터를 삭제시 빈공간 관리가 어렵다.
[파이썬 | 자료구조] 1. 자료구조의 시작 1. 자료구조의 시작 1.1 자료구조의 정의 및 분류 정의 데량의 데이터를 효율적으로 관리할 수 있도록 하는 데이터의 구조 데이터 특성에 따라서 체계적인 데이터 구조화가 필요 데이터 구조에 따라서 효율성, 성능이 결정된다 프로그램의 목적 및 기능에 따라서 적은 공간과 적은 시간으로 컴퓨터에 자료를 저장하는 방식 분류 단순구조 : 프로그램(언어)에서 제공하는 기본 데이터 타입 선형구조 : 자료들 사이 앞뒤 관계가 1대1 구조 비선형구조 : 자료들 사이 앞 뒤 관계가 계층 혹은 망구조 파일구조 : 보조기억장치에 저장 1.2 추상자료형 정의 기능의 구현 부분을 나타내지 않고, 순수한 기능이 무엇인지 나열한 것을 추상 자료형이라고 한다. 추상 자료형의 필요성 추상 자료형은 구현자와 사용자를 분리해 준다. 라이브..
[파이썬 | BOJ | 19539] 사과나무 https://www.acmicpc.net/problem/19539 19539번: 사과나무 첫 번째 줄에 모든 나무가 갊자가 바라는 높이가 되도록 물뿌리개를 통해 만들 수 있으면 “YES”를, 아니면 “NO”를 따옴표를 제외하고 출력한다. www.acmicpc.net 문제 이하는 최근 사과나무 씨앗을 구매하여 농장 뒷뜰에 일렬로 1번부터 N번까지 심었다. 이 나무들의 초기 높이는 모두 0이다. 사과나무를 무럭무럭 키우기 위해 이하는 물뿌리개 2개를 준비했다. 한 물뿌리개는 나무 하나를 1만큼 성장시키고, 다른 물뿌리개는 나무 하나를 2만큼 성장시킨다. 이 물뿌리개들은 동시에 사용해야 하며, 물뿌리개를 나무가 없는 토양에 사용할 수는 없다. 두 물뿌리개를 한 나무에 사용하여 3만큼 키울 수도 있다. 물뿌리..
[파이썬 | BOJ | 19535] ㄷㄷㄷㅈ https://www.acmicpc.net/problem/19535 19535번: ㄷㄷㄷㅈ 첫 번째 줄에 주어진 트리가 D-트리라면 D, G-트리라면 G, DUDUDUNGA-트리라면 DUDUDUNGA를 출력한다. www.acmicpc.net 문제 어느 날, 트리를 물끄러미 보고 있던 동현이는 엄청난 사실을 하나 발견했다. 바로 정점이 네 개인 트리는 ‘ㄷ’과 ‘ㅈ’의 두 종류밖에 없다는 사실이다! 정점이 네 개 이상 있는 임의의 트리에 대해, 그 트리에서 정점 네 개로 이루어진 집합을 고르자. 전체 트리의 간선들 중 집합에 속한 두 정점을 잇는 간선만을 남겼을 때, 네 개의 정점이 하나의 트리 형태로 이어지게 된다면 ‘ㄷ’ 모양이거나 ‘ㅈ’ 모양일 것이다. 트리에서 ‘ㄷ’의 개수와 ‘ㅈ’의 개수를 각각 ..
[파이썬 | BOJ | 1756] 피자 굽기 https://www.acmicpc.net/problem/1756 1756번: 피자 굽기 문제 월드피자 원주 지점에서 N개의 피자 반죽을 오븐에 넣고 구우려고 한다. 그런데, 월드피자에서 만드는 피자 반죽은 지름이 제각각이다. 그런가하면, 월드피자에서 사용하는 오븐의 모양도 www.acmicpc.net 문제 월드피자 원주 지점에서 N개의 피자 반죽을 오븐에 넣고 구우려고 한다. 그런데, 월드피자에서 만드는 피자 반죽은 지름이 제각각이다. 그런가하면, 월드피자에서 사용하는 오븐의 모양도 몹시 오묘하다. 이 오븐은 깊은 관처럼 생겼는데, 관의 지름이 깊이에 따라 들쭉날쭉하게 변한다. 아래는 오븐의 단면 예시이다. 피자 반죽은 완성되는 순서대로 오븐에 들어간다. 이렇게 N개의 피자가 오븐에 모두 들어가고 나면..
[파이썬 | BOJ | 9202] Boggle https://www.acmicpc.net/problem/9202 9202번: Boggle 문제 상근이는 보드 게임 "Boggle"을 엄청나게 좋아한다. Boggle은 글자가 쓰여 있는 주사위로 이루어진 4×4 크기의 그리드에서 최대한 많은 단어를 찾는 게임이다. 상근이는 한 번도 부인을 Boggle�� www.acmicpc.net 문제 상근이는 보드 게임 "Boggle"을 엄청나게 좋아한다. Boggle은 글자가 쓰여 있는 주사위로 이루어진 4×4 크기의 그리드에서 최대한 많은 단어를 찾는 게임이다. 상근이는 한 번도 부인을 Boggle로 이겨본 적이 없다. 이렇게 질 때마다 상근이는 쓰레기 버리기, 설거지와 같은 일을 해야 한다. 이제 상근이는 프로그램을 작성해서 부인을 이겨보려고 한다. Boggle..
[파이썬 | 알고스팟 | MAXSUM] 최대 연속 부분합 찾기 https://www.algospot.com/judge/problem/read/MAXSUM algospot.com :: MAXSUM 최대 연속 부분합 찾기 문제 정보 문제 N개의 정수를 담고 있는 배열 A가 주어졌을 때, 여기서 가능한 연속 부분합을 구하는 프로그램을 작성하라. 여기서 연속 합이라는 것은 배열 A = { a1, a2, ..., www.algospot.com 문제 N개의 정수를 담고 있는 배열 A가 주어졌을 때, 여기서 가능한 연속 부분합을 구하는 프로그램을 작성하라. 여기서 연속 합이라는 것은 배열 A = { a1, a2, ..., aN } 에서 아무 값도 선택을 하지 않거나( 이 경우 합은 0 ), 배열의 임의의 i번째 수 부터 j번째 수 까지( ai, ai+1, ..., aj ) ( 1
[파이썬 | BOJ | 11401] 이항 계수 3 https://www.acmicpc.net/problem/11401 11401번: 이항 계수 3 자연수 \(N\)과 정수 \(K\)가 주어졌을 때 이항 계수 \(\binom{N}{K}\)를 1,000,000,007로 나눈 나머지를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 자연수 N과 정수 K가 주어졌을 때 이항 계수 를 1,000,000,007로 나눈 나머지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 4,000,000, 0 ≤ K ≤ N) 출력 를 1,000,000,007로 나눈 나머지를 출력한다. 풀이 를 구하는 기본적인 다이나믹 프로그래밍 방법은 로 정의되는 성질을 이용해서 푸는것이다. 하지만 이 문제에서 N의 제한이 매우크기 때문에 ..