Python (8) 썸네일형 리스트형 [백준/Python] 1110: 더하기 사이클 ‣ 문제 링크 https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net ‣ 접근 방법 문제를 잘 따라가면 접근 방법을 파악할 볼 수 있다. 문제의 예시처럼 26을 통해 접근방법을 생각해보자. 26은 10보다 크기 때문에 26이 유지된다. 각 자리수를 더해서 얻을 수 있는 수는 2+6 = 8이다. 그럼 새로 만들어지는 수는 26의 1의 자리수인 6과 각 자리수를 더해 얻은 8의 1의 자리수인 8이 붙여 68이 된다. 아직 68과 26은 .. [백준/Python] 13909 창문 닫기 ‣ 문제 링크 https://www.acmicpc.net/problem/13909 13909번: 창문 닫기 서강대학교 컴퓨터공학과 실습실 R912호에는 현재 N개의 창문이 있고 또 N명의 사람이 있다. 1번째 사람은 1의 배수 번째 창문을 열려 있으면 닫고 닫혀 있으면 연다. 2번째 사람은 2의 배수 번째 www.acmicpc.net ‣ 접근 방법 창문의 상태가 바뀌는 것은 해당 창문 번호의 약수의 개수와 관련이 있다. 예를 들어, 12번 창문의 경우 1, 2, 3, 4, 6, 12의 6개 약수가 있으므로 6번 상태가 바뀌게 된다. 그럼 0에서 6번 상태가 바뀐 12는 최종적으로 어떤 상태일까? 아래는 12번째의 창문의 상태가 자신의 약수번째 사람일 경우 어떻게 바뀔지 표로 나타낸 것이다. 1 2 3.. N진법 ⚠️ 코드 없이, 설명만 작성된 글입니다.[N진법]?10진법에 익숙한 우리에게 N진법은 다소 어색하게 느껴진다.하지만, 우리는 이미 일상에서 다양하게 N진법을 접하고 있다.예를 들어 생각해 보자.연필은 한 다스는 12자루이다.그럼 연필이 30개면? 2다스 6자루가 된다.즉, 10진수로 30은, 12진수로 26이된다.연필 12자루 / 셔터스톡아직 애매한가?그럼 계란의 경우도 생각해보자.계란은 한판에 30개로 구성된다.그럼 계란이 3판에 3개가 추가로 있다면 총 몇 개의 계란이 있는 것일까?답은 93개이다.즉, 30진수로 33은 10진수로 93이 되는 것이다.우리는 이처럼, 이미 자연스럽게 다양한 진법을 실생활에 사용해 왔다. 단순하게 아래와 같이 생각하고, 변환법을 바로 알아보자.N진법 = 모든 자리 수가.. 힙(Heap) 🥪🥅목표우선 순위 큐를 위하여 만들어진 자료구조, 힙(Heap)에 대해 이해한다.배열을 사용하여 힙(Heap)을 구현할 수 있다.힙(Heap)의 삽입과 삭제를 이해한다. 🤔시작 전…우선순위 큐(Priority-Queue)란?데이터틀이 우선순위를 가지고 있고, 우선순위가 높은 데이터가 먼저 나간다.자료구조삭제되는 요소스택(Stack)가장 최근에 추가된 데이터큐(Queue)가장 먼저 들어온 데이터우선순위 힙(Priority-Queue)가장 우선순위가 높은 데이터우선순위 큐는 배열, 연결리스트, 힙으로 구현이 가능하다. 이 중에서 힙(Heap)으로 구현하는 것이 가장 효율적이다.표삽입삭제순서 없는 배열O(1)O(n)순서 없는 연결 리스트O(1)O(n)정렬된 배열O(n)O(1)정렬된 연결리스트O(n)O(1)힙O.. 스택(Stack) 🥪Stack목표스택(Stack)의 기본 연산을 이해한다.Kotlin과 Python으로 Stack을 구현할 수 있다.📖개념한쪽 끝에서만 자료를 넣고 뺼 수 있는 LIFO(Last In First Out) 형식의 자료구조🧮연산스택(Stack)은 LIFO를 따른다. 즉, 가장 최근에 스택에 추가한 항목이 가장 먼저 제거될 항목이다.pop(): 스택에서 가장 위에 있는 항목을 제거한다.push(item): item 하나를 스택의 가장 윗 부분에 추가한다.peek(): 스택의 가장 위에 있는 항목을 반환한다.isEmpyty(): 스택이 비어있을 때 true를 반환한다. ⚒️구현문제의 종류에 따라 배열보다 스택에 데이터를 저장하는 것이 더 적합한 방법일 수 있다.배열과 달리 스택은 상수시간(O(1)에 i번째 항목에.. 큐(Queue) 🥪🥅목표큐(Queue)의 기본 연산을 이해한다.Kotlin과 Python으로 Queue를 구현할 수 있다.📖개념컴퓨터의 기본적인 자료구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out)구조로 저장하는 형식이다. 🧮연산큐(Queue)는 FIFO(First-In-First-Out)을 따른다.add(item) : item을 리스트의 끝부분에 추가한다.remove(): 리스트의 첫 번째 항목을 제거한다.peek(): 큐에서 가장 위에 있는 항목을 반환한다.isEmpty(): 큐가 비어있을 때에 true를 반환한다. ⚒️구현Kotlin으로 구현한 큐 예시 코드는 아래와 같다.class Queue { private val items = mutableListOf() fu.. [Python] heapq: min heap & max heap 파이썬 Heapheapq 모듈을 사용해서 최소 힙과 최대 힙을 간단하게 구현 가능.import heapq자주 쓰이는 메소드로는 heapify(), heappush(), heappop()가 있다.heapify(heap): heap 불변성을 유지하면서 heap내부 item 값들을 min heap으로 바꿔준다.heappush(heap, item): heap 불변성을 유지하며 item 값을 heap으로 push해 준다.heappop(heap): heap 불변성을 유지하면서 heap에서 가장 작은 항목을 pop하고 반환해주는 메소드이다.heappop 메소드를 사용할 때, heap이 비어있으면 indexError가 발생한다. 사용법Min heap(최소 힙)import heapq # 1️⃣ heapify()로 min.. [Python] 시간 초과 나는 경우에 적용해볼 수 있는 팁 파이썬으로 코딩 테스트 문제를 풀다보면 생각보다 시간초과가 자주 발생한다.해결할 수 있는 몇가지 팁을 작성한다. 1. sys.stdin.readlind()로 입력받기입력 값을 받아 저장해야하는 경우, input()으로 구현하는 경우가 많다. sys 파이썬 표준 라이브러리를 사용하면 훨씬 빠른 시간에 적은 메모리를 사용하여 입력을 받을 수 있다.import sys # 방법1 var = sys.stdin.readline() # 방법2 input = sys.stdin.readlin var = input()🗣️ 저는 2번째 방법을 더 자주 사용하는 편입니다. 2. 배열 & 리스트에 원소를 추가할 때 인덱스로 접근하기배열이나 리스트에 원소를 추가하는 경우, 보통 빈 collection을 만들고 append로 추가.. 이전 1 다음