코딩일지 218

20220922 TIL

오늘의 한 일 파이썬 장고 강의 1주차 aws 계정 보안 강화 백준 문제풀이 복습 파이썬 장고 강의 1주차 장고 첫 주차 강의는 기본적인 웹의 동작 순서 및 개념, 그리고 내가 계속 써오던 파이참에 대한 사용법, 파이썬 기초 문법을 가볍게 다뤄서, 적당히 듣고 빠르게 장고 폴더를 생성해 2주차 실습을 들어가려고 했다. 그런데.. 장고 파일을 생성하는데 돌아가질 않는다 왜지?? django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or ..

20220921 TIL

오늘의 한 일 자료구조, 알고리즘 복습 및 정리 백준 알고리즘 문제 복습 자료구조, 알고리즘 복습 밎 정리 https://yaun.tistory.com/230 자료구조, 알고리즘 1주차 정리 알고리즘이란? 알고리즘 - 어떤 문제의 해결을 위하여, 입력된 자료를 토대로 하여 원하는 출력을 유도하여 내는 규칙의 집합. 여러 단계의 유한 집합으로 구성되는데, 각 단계는 하나 또는 그 yaun.tistory.com https://yaun.tistory.com/231 자료구조, 알고리즘 2주차 정리 오늘 배울것 어레이(Array)와 링크드 리스트(Linked List) 클래스 이진 탐색과 재귀 함수 어레이(Array)와 링크드 리스트(Linked List) 1. 어레이(Array, 배열) 배열은 크기가 정해진 데..

자료구조, 알고리즘 4주차 정리

오늘 배울 것 트리, 힙 DFS, BFS Dynamic Programming 트리 트리란? - 뿌리와 가지로 구성되어 거꾸로 세워놓은 나무처럼 보이는 계층형 비선형 자료 구조. 앞서 보인 큐(Queue), 스택(Stack) 은 자료구조에서 선형 구조라고 합니다. 선형 구조란 자료를 구성하고 있는 데이터들이 순차적으로 나열시킨 형태를 의미합니다. 이번에 배울 트리는 바로 비선형 구조입니다! 비선형 구조는 선형구조와는 다르게 데이터가 계층적 혹은 망으로 구성되어있습니다. 선형구조와 비선형구조의 차이점은 형태뿐만 아니라 용도에서도 차이점이 많습니다! 선형구조는 자료를 저장하고 꺼내는 것에 초점이 맞춰져 있고, 비선형구조는 표현에 초점이 맞춰져 있습니다. * 아래 폴더 구조가 대표적인 트리의 형태입니다! 트리는..

자료구조, 알고리즘 3주차 정리

오늘 배울 것 정렬 스택 큐 해쉬 정렬 정렬 - 알고리즘의 굉장히 중요한 주제로, 데이터를 순서대로 나열하는 방법 정렬 - 1 버블 정렬 첫 번째 자료와 두 번째 자료를, 두 번째 자료와 세 번째 자료를, 세 번째와 네 번째를, … 이런 식으로 (마지막-1)번째 자료와 마지막 자료를 비교하여 교환하면서 자료를 정렬하는 방식 작은 숫자, 큰 숫자 순서로 있으면 내버려두고 큰 숫자, 작은 숫자 순서로 있으면 둘의 위치를 변경한다. [4, 6, 2, 9, 1] # 정렬되지 않은 배열 1단계 : [4, 6, 2, 9, 1] 4와 6을 비교합니다! 4 2 이므로 둘을 변경합니다! [4, 2, 6, 9, 1] 이렇게요..

자료구조, 알고리즘 2주차 정리

오늘 배울것 어레이(Array)와 링크드 리스트(Linked List) 클래스 이진 탐색과 재귀 함수 어레이(Array)와 링크드 리스트(Linked List) 1. 어레이(Array, 배열) 배열은 크기가 정해진 데이터의 공간이다. 한 번 정해지면 바꿀 수 없다. 배열은 각 원소에 즉시 접근할 수 있다. 여기서, 원소의 순서는 0부터 시작하고 이를 인덱스라고 부른다. 이 때, 즉시 접근 가능하다는 말은 상수 시간 내에 접근할 수 있음을 의미한다. 즉, O(1) 내에 접근할 수 있다고 말할 수 있다. 원소를 새로 추가하려면, 새로운 공간을 할당해야 하므로 매우 비효율적인 자료구조. 2. 링크드 리스트(Linked List) 리스트는 크기가 정해지지 않은 데이터의 공간이다. 연결 고리로 이어주기만 하면, ..

자료구조, 알고리즘 1주차 정리

알고리즘이란? 알고리즘 - 어떤 문제의 해결을 위하여, 입력된 자료를 토대로 하여 원하는 출력을 유도하여 내는 규칙의 집합. 여러 단계의 유한 집합으로 구성되는데, 각 단계는 하나 또는 그 이상의 연산을 필요로 한다. [표준국어대사전] 어떤 문제가 있을때, 그것을 해결하기 위한 여러 동작들의 모임 시간 복잡도 판단하기 시간 복잡도 - 입력값과 문제를 해결하는 데 걸리는 시간과의 상관관계 최댓값 찾기 알고리즘의 시간 복잡도 판단해보기 첫 번째 방법 input = [3, 5, 6, 1, 2, 4] def find_max_num(array): for num in array: for compare_num in array: if num < compare_num: break else: return num resul..

20220920 TIL

오늘의 한 일 자료구조, 알고리즘 강의 - 4~5주차 백준 알고리즘 문제 풀이 및 정리 - 정렬 자료구조, 알고리즘 강의 4주차, 5주차 ** 트리 - 이진 트리, 완전 이진 트리 ** 힙 (heapq 모듈 사용) ** DFS (Depth First Search), 깊이 우선 탐색 - 스택 사용 / BFS (Breadth-First Search), 너비 우선 탐색 - 큐 사용 ** 동적 계획법 (Dynamic Programming) - 피보나치 수열 활용 python 백준 알고리즘 10870번: 피보나치 수 5 - 동적 프로그래밍 활용해보기 https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, ..

python 백준 알고리즘 18870번: 좌표 압축

https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 좌표 압축 - 수의 범위가 매우 큰 상황에서 수의 값과 상관없이 좌표들 사이의 대소만 구별할 때 사용 1. 좌표 압축을 할 배열을 임시의 배열에 중복이 없고(set) 정렬된(sort) 상태로 만들어 둔다. 2. 압축할 배열의 각 수들이 임시 배열의 몇 번째 인덱스에 해당하는 수인지 찾는 것으로 대소를 구별한다. 임시 배열은 정렬된 상태이기 때문에 ..

python 백준 알고리즘 10814번: 나이순 정렬

https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 띄어쓰기를 기점으로 두 정보를 받아서 리스트 형식으로 리스트에 저장 나이순 정렬 (key = lambda x: int(x[0]) 나이[0], 이름[1] 출력 내 제출 import sys n = int(sys.stdin.readline()) member_list = [] for i in range(n): member_list.append(list(sys.stdin.readline().split())) m..

python 백준 알고리즘 1181번: 단어 정렬

https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 중복 제거 - set 자료형 / if (변수) not in: 문자열을 길이순으로 정렬 - sort(key = len) 두 가지만 신경써주면 계속 쓰던거 쓰는 문제. 내 제출 import sys n = int(sys.stdin.readline()) set_list = set() # 중복제거 for i in range(n): set_list.add(sys.stdin.readline().st..