전체 글

코딩하는 대학생에서 개발자까지
백준(G5) 5430번: AC (파이썬, Python3) 및 deque 설명
https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 파이썬 문제를 풀면 풀수록 다양한 모듈에 대해 알 수 있어서 좋은 것 같다. 오늘은 deque라는 모듈에 대해 공부를 했다! Deque는 스택과 큐의 기능을 모두 가진 객체로 이해하면 쉽다. 우선 deque를 가져오는 방법부터 알아보겠다. 1 2 3 4 from collections import deque abc = deque('loveyou3000') print(abc) cs deque는 collections라는 모듈로부터 가져올수 있습니다. dequ..
백준(B1) 2748번: 피보나치 수 2(파이썬, Python) *시간 초과 문제 해결 방법
https://www.acmicpc.net/problem/2748 2748번: 피보나치 수 2 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 코딩에 조금이라도 관심이 있으신 분이라면 피보나치 수열은 반드시 들어봤을 것이다. F(n) = F(n-1) + F(n-2) 라는 식을 가진 피보나치 수열은 보통 회귀 방법으로 풀고는 한다. 하지만 이 문제도 회귀 방법으로 풀게 된다면 답은 나오지만 시간 초과가 될 것이다. 지금부터 재귀함수를 사용하지 않고 리스트를 사용하면서 피보나치 수열을 푸는 방법을 알려주겠..
백준(S2) 1927번: 최소 힙(파이썬, Python3)
https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 이 문제와 최대 힙 문제는 heapq 모듈을 알면 정말 쉽게 풀 수 있는 문제다. https://solution-is-here.tistory.com/114 백준(S2) 11279번: 최대 힙(파이썬, Python3)및 heapq 설명 https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000..
백준(S2) 11279번: 최대 힙(파이썬, Python3)및 heapq 설명
https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 나는 자료구조를 C언어로 배워서 최대 힙을 구현할 때 C언어는 구현하기 위해 10~20줄 정도 필요 한 것으로 알고 있는데 파이썬은 heapq를 import 하면 끝나는 것을 알고 매우 놀랐다... (정말 좋은 언어다 파이썬) 문제를 풀기 위해 heapq와 heapq의 함수들을 간단하게 설명하자면 우선 heapq는 최소힙으로 숫자들을 정렬한다. 부모노드가 자식노드보다 작은 ..
백준(S5) 11866번: 요세푸스 문제 0 (파이썬, Python3)
https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 우선 이 문제는 요세푸스 순열을 이해를 해야 풀 수 있는 문제다. 이렇게 사람들이 동그랗게 앉아 있다고 가정해보자. 만약 순서대로 3번째 사람을 제거한다고 문제가 주어지면 제일 먼저 제거되는 사람은 3이다. 그 후, 3이 제거되므로 리스트의 길이도 1 줄어든다. 리스트의 길이를 고려하지 않고 무작정 3번째 인덱스를 pop함수를 이용해 제거한다면 아마 index를 초과했다는 런타임에러 메세지가 나올 것이다. 그러므로 원형큐의 원리를 사용해서 인덱스의 길이로 나눈 나머지를 이용해야 한..
백준(S3) 14425번: 문자열 집합 (파이썬,Python3)
https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 우선 이 문제는 이진탐색(Binary_search)을 이용한 문제다. 이진탐색을 아직 잘 모른다면 https://solution-is-here.tistory.com/110 [자료구조] 이진탐색(Binary Search) 파이썬으로 마스터 하기 & 백준 10815번: 숫자카드 (파이썬,Python3) 이진탐색은 오름차순으로 정렬된 배열에서 원하는 숫자(Target)를..
코딩하는_대학생
코딩하는 대학생에서 개발자까지