스택 자료구조 먼저 들어온 데이터가 나중에 나가는 형식의 구조(후입 선출) 입구와 출구가 동일한 형태로 스택을 시각화할 수 있다. stack = [] # 삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제() stack.append(5) stack.append(2) stack.append(3) stack.append(7) stack.pop() stack.append(1) stack.append(4) stack.pop() print(stack) # 최하단 원소부터 출력 print(stack[::-1]) # 최상단 원소부터 출력 큐 자료구조 먼저 들어온 데이터가 처음 나가는 형식의 구조 (선입 선출) 입구와 출구가 일자로 이어져있는 터널형태로 큐를 시각화 ..
그리디 알고리즘 그리디 알고리즘은 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미한다. 일반적인 그리디 알고리즘은 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구한다. 그리디 해법은 그 정당성 분석이 중요하다. 단순히 가장 좋아 보이는 것을 반복적으로 선택해도 최적의 해를 구할 수 있는지 검토한다. 일반적인 상황에서 그리디 알고리즘은 최적의 해를 보장할 수 없을 때가 많다. 코딩 테스트에서는 대부분의 그리디 문제는 탐욕법으로 얻은 해가 최적의 해가 되는 상황에서, 이론 추론할 수 있어야 풀리도록 출제된다. 예제: 거스름돈 문제 당신은 음식점의 계산을 도와주는 점원이다. 카운터에는 거스름돈으로 사용할 500원, 100원, 10원짜리의 동전이 무한히 존재한다고 가정한다. 손님에게 거..
파이썬 클래스의 기본 구조 파이썬 클래스는 객체지향 프로그래밍의 기본 구성 요소 중 하나로, 데이터와 해당 데이터를 처리하는 메서드를 포함하는 사용자 정의 데이터 타입이다. 클래스는 객체의 설계도 이며, 객체는 클래스로부터 생성된 인스턴스이다. 클래스를 사용하면 데이터와 함꼐 메서드를 논리적으로 묶어서 사용할 수 있다. class ClassName: # 클래스 변수 (모든 객체가 공유하는 변수) class_variable = 0 # 초기화 메서드 (생성자, 객체가 생성될 때 자동으로 호출됨) def __init__(self, parameter1, parameter2, ...): # 인스턴스 변수 (객체마다 별도로 유지되는 변수) self.instance_variable1 = parameter1 self...
백준 1003 파이썬 문제 풀이 문제 링크 https://www.acmicpc.net/problem/1003 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 문제 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, N이 주어진다. N은 40보다 작거나 같은 자연수 또는 0이다. 출력 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. 제출 코드 test = int(input()) def fibonacci(n): while len(result0) < n+1: a..
백준 17219 파이썬 문제 풀이 문제 링크 https://www.acmicpc.net/problem/17219 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net 문제 입력 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번호가 공백으로 구분되어 주어진다. 사이트 주소는 알파벳 소문자, 알파벳 대문자, 대시('-'), ..