본문 바로가기

환영합니다. 이 블로그 번째 방문자입니다.

Python

  (32)

Dynamic Programming (DP) - Memoization DP의 핵심 Memoization : 메모이제이션 (top, down) Tabulation : 타뷰레이션(bottom up) Alvin's Memoization Recipe 1. Make it work visualize the problem as a tree implement the tree using recursion test 2. Make it efficient add a memo object (set,arr,..) add a base case to return memo values store return values into the memo 피보나치 ❌ DP def fibonacci(n): if n
[백준] 다시 풀어봐야 할 문제 모음 1. https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net 2. https://www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 3. h..
[Q3:English] Kth largest element Given an array of integers arr and an integer k find the kth largest element. (1 ≤ k ≤ length of arr) For example, arr = [4,2,9,7,5,6,7,1,3], k = 4, output : 6. [ Method 1] # Logic Remove max element in the arr for k-1 times and return max element. # Code # Complexity T(n,k) : (k-1) * 2n + n = O(kn) S(n) : O(1) [Method 2] # Logic Use sorting # Code # Complexity T(n,k) : O(nlogn) + O(1) = O(nlogn..
[Q2:English] First and last index in sorted array 👇🏻 문제(이 정도는 해석X...귀찮,, 영어강의라 포스트도 영어로) Given a sorted array of integers arr and an integer target, find the index of the first and last position of target in arr. In targer can't be found in arr, return [-1,-1]. For example, arr = [2,4,5,5,5,5,5,7,9,9], target = 5 👉🏻 output : [2, 6] [Method 1] # Logic # Code # Complexity S(n) = O(1) T(n) = O(n) [Method 2] How about using binary search? Because i..
[Q1:Korean] Anagram, 철자 확인 👇🏻 문제 문자열 s1, s2가 주어졌을 때, 그들이 anagram인지 확인해라. 두 문자열이 같은 빈도의 같은 문자로 이루어졌다면 anagrams가 맞다. 예시 ) s1 = "danger" , s2 = "graden" 은 anagram이다. [ 방법 1 ] 기본 로직 freq1 = s1의 문자들의 빈도수 freq2 = s2의 문자들의 빈도수 freq1 == freq2 👉🏻 s1과 s2는 anagram 이 로직을 수행하기 위해서는 a~z까지의 알파벳 테이블에 문자가 얼마나 들어갔는지 cnt를 계산해서 비교할 수 있다. 하지만, Hash Table 을 쓰면 되는데 용량 낭비까지 할 필요는 전혀 없다. s1 = "nameless" , s2 = "salesman" freq1 == freq2 => s1과 s2는..
[➕ 오답노트] 백준 1697번 👇🏻 문제 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 메모리 초과가 난 문제, 메모리를 정해 큐와 시간 배열을 함께 사용하는 문제 나는 이렇게 두 가지 자료구조를 한 번에 사용하는 데에 머리가 안 돌아가는 것 같다. 굳이? 라는 느낌이 들면 무조건 _ _ _ 초과가 뜬다. 인터넷에 널려있는 정답 코드지만 이유가 있겠지... 자료형의 크기에 주의하자. import sys from collections import ..
[➕ 오답노트] 백준 7576번 배열 BFS 👇🏻 문제 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 배열 자료구조의 DFS는 많이 풀어봤지만, BFS는 처음이다. 그래서 못 풀었다 ㅎ import sys from collections import deque M, N = map(int, sys.stdin.readline().strip().split()) tomato = [list(map(int, sys.stdin.readline().strip().split())) for..
[➕ 오답노트] 백준 11478번 👇🏻 문제 https://www.acmicpc.net/problem/11478 11478번: 서로 다른 부분 문자열의 개수 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net 간단하지만, 시간초과와 싸워야 하는 문제이다. 나는 당연히 2중 포문을 사용해서 코드를 작성했지만, 항상 공개되어 있는 정답코드와 비교해보곤 한다. # Nesty Code : 508ms import sys str = sys.stdin.readline().strip() combi = {} for i in range(1,len(str)+1): for j in range(len(str)-i+1): combi[str[j:j+i]]=0 print(len(combi..
Binary Search, 이진 탐색 이진탐색은 정렬된 배열 안에서 타깃 값의 인덱스를 찾는 탐색 알고리즘이다. 이진탐색은 배열의 중간 인덱스의 값을 타깃 값과 비교해 타깃 값의 인덱스를 찾는다. 1. 문제 상황 문제 상황을 가정해 보자. 우리는 숫자 X가 위의 배열에 존재하는지 살펴볼 것이다. ⓵ X = 21 , 3번 인덱스에 존재 ⓶ X = 25 , 존재하지 않음 ⓷ X = 81 , 7번 인덱스에 존재 위의 상황을 해결하는 가장 간단한 방법은 배열을 전부 스캔해 X 값을 찾는 것이다. 0번 인덱스로부터 시작해, 타깃 값을 찾으면 인덱스 반환 및 종료를 하면 된다. 다만, 존재하지 않는 것을 알기 위해서는 8번 인덱스까지 스캔해야만 한다. 이 탐색 법은 최악의 경우, 배열의 사이즈만큼의 시간 복잡도가 필요하다. 다행히도, 이 상황을 선형 ..
[ ➕ 오답노트] 백준 17298번 오큰수 👇🏻 문제 https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 스택이란 이렇게 쓰는 거지를 알려주는 문제 같다. 스택에 인덱스를 넣어서 비교하는 방법과 스택에 값과 인덱스를 함께 넣어서 비교하는 방법이 있다. 나는 후자가 더 이해가 잘 가서 후자로... import sys A = int(sys.stdin.readline()) data = list(map(int, sys.stdin.readline().split())) answer = [-1] * A stack..
[ ➕ 오답노트] 프로그래머스 해시 - 베스트앨범 아... 이 문제... 실패했다...ㅎ 미련 없이 해답을 보기로..! 👇🏻 문제 https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 정답 코드 def solution(genres, plays): answer = [] d = {e:[] for e in set(genres)} for e in zip(genres, plays, range(len(plays))): d[e[0]].append([e[1] , e[2]]) ..
[re-Python] 문자열, 배열 정렬 (sort, sorted) 코딩테스트에서 간간히 나오는 유형이라 모르고 지나칠 수가 없는... 근데 헤깔리는... 1차원 배열을 정렬하는 것은 매우 쉽다. [1차원 배열] Ascending Sort, 오름차순(1,2,3,...) 정렬 arr = [5,2,3,1,4] # 1번 방법 sorted(arr) # 출력 : [1,2,3,4,5] # 2번 방법 arr.sort() # 출력 : [1,2,3,4,5] sorted(배열명) 이나 배열명.sort()를 사용하면 된다. 숫자, 문자, 문자열 전부 상관없이 오름차순 정렬이 된다. 다만, 대소문자가 섞여있는 배열에는 대문자 오름차순 > 소문자 오름차순 으로 정렬된다. (문자를 아스키코드 값에 대응하기 때문) 이 두 내장 메소드의 차이점은 분명해서 언제 사용할지 분명히 나누어진다. sorte..
[2021 KAKAO 블라인드 채용] 메뉴 리뉴얼 👇🏻 문제 https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 이 문제로 정말 애를 좀 먹었다. 로직은 대충 알겠는데 막상 구현에서 쩔쩔맸다. 그 이유는 다음과 같다. 조합을 구현하는데에 무한 loop 에 빠졌다. 재귀함수 잘못 짠... 파이썬에 combinations가 있었던 걸 알았다면, 더 편하게 짰을 것 같다. 나의 로직은 다음과 같다. 1. course의 반복문을 돌며 orders의 원소들을 일일히 검사한..
DFS & BFS (3) : 노드 탐색 👇🏻 출처 더보기 https://www.youtube.com/watch?v=tWVWeAqZ0WU 2022.04.28 - [Python/[Algorithm] 알고리즘] - DFS & BFS (2) : 경로 탐색 DFS & BFS (2) : 경로 탐색 🔹 출처 더보기 https://www.youtube.com/watch?v=tWVWeAqZ0WU 2022.04.26 - [Python/[Algorithm] 알고리즘] - DFS & BFS, 깊이 우선 탐색과 넓이 우선 탐색 (1) DFS & BFS, 깊이 우선 탐색과 넓이 우선 탐색 (1).. sennieworld.tistory.com { 무방향 그래프 사이클 개수 찾기 } 위의 그래프에 연결되어 있는 노드의 집합은 {1,2}, {4,5,6,7,8}, {3} 으..
DFS & BFS (2) : 경로 탐색 🔹 출처 더보기 https://www.youtube.com/watch?v=tWVWeAqZ0WU 2022.04.26 - [Python/[Algorithm] 알고리즘] - DFS & BFS, 깊이 우선 탐색과 넓이 우선 탐색 (1) DFS & BFS, 깊이 우선 탐색과 넓이 우선 탐색 (1) 출처 : 더보기 https://www.youtube.com/watch?v=tWVWeAqZ0WU DFS와 BFS는 그래프 자료 구조를 이용한다. 더보기 2022.04.24 - [Python/[Data Structure] 자료구조] - [11] Graph, 그래프 [11] Graph, 그래프 어쨌.. sennieworld.tistory.com { 경로 찾기 } 출발 노드에서 도착 노드까지 경로가 있는지 탐색 : 있으면 tr..
[2] 백준 13458번: 시험감독 { 문제 } https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net { 40분 무코딩 로직 사고} 나눗셈 문제 결과 : 2분 문제 이해 + 4분 문제 로직 생각 { 코드 구현 } import math N = int(input()) A = list(map(int, input().split())) B, C = map(int, input().split()) judges = [0 for i in ran..
DFS & BFS (1) : 그래프 순회 출처 : 더보기 https://www.youtube.com/watch?v=tWVWeAqZ0WU DFS와 BFS는 그래프 자료 구조를 이용한다. 더보기 2022.04.24 - [Python/[Data Structure] 자료구조] - [11] Graph, 그래프 [11] Graph, 그래프 어쨌든 계획한 목록에서는 마지막 챕터이다. 그래프!!!!!!!!!!!!!! 오늘의 짤은 따로 없을 예정 하하 그래프도 참 나를 괴롭게했지...하...(기싫다).... 그림 출처 :https://python.plainenglish.io/graph-data-st.. sennieworld.tistory.com DFS : 말 그대로, 방향 그래프에서는 시작 노드부터 방향을 따라 깊숙히 탐색하는 것이다. BFS : 노드의 이웃 ..
[1] 백준 12100번: 2048 (Easy) { 문제 } https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net { 30분 노코딩 로직 사고 } 1. [입력] N 입력 ➡ board[N][N] 배열 0 초기화 ➡ board_check[N][N] 배열 0 초기화 ➡ board 원소 입력 2. [비교] board 행의 같은 수 연속이 많은지, 열의 같은 수 연속이 많은지 비교하는 함수 작성 행의 수가 연속하는 경우 & 0을 끼고 같은 수가 있는 경우, row_check[..
[11] Graph, 그래프 어쨌든 계획한 목록에서는 마지막 챕터이다. 그래프!!!!!!!!!!!!!! 오늘의 짤은 따로 없을 예정 하하 그래프도 참 나를 괴롭게했지...하...(기싫다).... 그림 출처 :https://python.plainenglish.io/graph-data-structure-theory-and-python-implementation-ee8c9795eae7 ✅ 그래프란 그래프(Graph)란 정점과 간선으로 이루어진 자료구조이다. 이전에 배웠던 트리(노드와 간선)도 그래프의 일종인데 사실 트리가 별종이다. 다만, 트리와 그래프의 차이점이라면 다음과 같다. 1. 트리에는 루트 노드가 명백히 존재하지만, 그래프는 그런 거 없다. 2. 트리는 루트에서 리프 노드로 뻗어가는 단방향 경로만 존재하지만, 그래프는 단방향 ..
[10] Hash Table, 해시 테이블 ✅ 해시 테이블이란 해시 테이블(Hash Table)은 키(Key)에 데이터(Value)를 저장하는 자료형이다. 파이썬에서 공부했던 딕셔너리와 비슷한 개념 정도가 아니라, 해시를 구현할 때 딕셔너리 타입을 사용하면 된다. 해시 테이블은 키를 통해 데이터를 바로 찾을 수 있는 장점이 있는데 시간 복잡도가 O(1)으로 매우 빠르다. ✅ 해시 주소란 해시 주소(Hash Address)는 해시 값이다. Key를 해싱 함수로 연산해서 나오는 값이 해시 값이다. ✅ 해시 함수란 해시 함수(Hash Function)는 임의 길이의 데이터를 고정 길이의 데이터로 매핑하는 함수이다. 가장 간단한 형태는 데이터를 지정된 숫나로 나눈 뒤에 나머지를 인덱스로 사용하는 방법인데 코드로 나타내면 다음과 같다. def HashFu..
[9] Priority Queue, 우선순위 큐 & Heap, 힙 빠지지 않는 오늘의 짤.. 더보기 사실 큐 포스트 다음이 우선순위 큐였는데 조금 공부하다 보니 트리를 알아야 할 것 같아서 트리를 하고 온 것이다. 2022.04.13 - [Python/[Data Structure] 자료구조] - [6] Queue, 큐 [6] Queue, 큐 👇🏻 오늘의 짤 : 최근에 피트 데이비슨이랑 아주 🔥 하게 장안의 화제가 되고 있는 킴언니의 짤을 준비했다. 더보기 몇일 전에 롯데월드에 갔는데 내가 가장 좋아하는 게 아틀란티스다. 근데 sennieworld.tistory.com ✅ 우선순위 큐란 큐에 대해 잠깐 요약해보면 큐는 FIFO, 먼저 들어간게 먼저 나오는, 아틀란티스 줄 구조이다. 하지만, 우선순위 큐는 우선순위를 가지고 있어, 우선순위가 높은 데이터가 먼저 나오는 자료..
[8] Binary Search Tree, 이진 탐색 트리 👇🏻 오늘도 지나칠 수 없는 오늘의 짤 더보기 저번 포스트에서 공부했던 이진 트리의 응용버전(?)을 공부하도록 하겠다. ✅ 이진 탐색 트리란 이진 탐색 트리(Binary Search Tree)는 주로 BST라고 부르고 쉽게 말해 [이진 트리 + 조건 한 개 추가]를 만족하는 자료형이다. 바로 그 조건은 듣기에는 간단하다. -> (모든 노드에 대해) 왼쪽 노드.data < 오른쪽 노드.data 이진 탐색 트리(Binary Search Tree, BST) : 모든 노드에 대해 왼쪽 노드의 데이터가 오른쪽 노드의 데이터보다 작음을 만족하는 이진 트리 이진 탐색 트리의 조건은 그다지 까다롭게 느껴지지는 않지만 막상 구현해 보면 생각보다 어렵다고 느끼게 될 것이다. 왜냐하면 트리에 데이터를 삽입하고 삭제할 때, ..
[7] Tree, 트리 👇🏻 오늘도 여김없이 오늘의 짤 더보기 무는 뿌리를 바탕으로 가지를 통해 잎이 난다. 나무에 영양분이 공급되는 경로(루트)가 트리(Tree)의 자료구조 형태와 비슷하다. 오른쪽 그림이 트리 자료구조를 시각화한 것이다. 알파벳 트리(오른쪽 그림)에서 화살표가 양분이 뻗어나가는 통로(즉, 가지)라고 하면 나무의 뿌리는 A가 될 것이다. 트리에서는 이것을 루트 노드(root node, 노드는 연결리스트에서 등장한 개념과 동일)라고 한다. 영양분이 뻗어나가는 통로를 간선(edge)라고 하고 영양분이 최종적으로 전달되는 D,E,C를 리프 노드(leaf node)라고 한다. 컴퓨터가 정하기 좋아하는 것 중 하나가 관계를 정의하는 것이다. 트리에서는 edge(화살표)를 기준으로 시작하는 노드가 부모, 가리키는 노드가..
[6] Queue, 큐 👇🏻 오늘의 짤 : 최근에 피트 데이비슨이랑 아주 🔥 하게 장안의 화제가 되고 있는 킴언니의 짤을 준비했다. 더보기 몇일 전에 롯데월드에 갔는데 내가 가장 좋아하는 게 아틀란티스다. 근데 그거 RG 다들. 아틀란티스 줄 엄청 긴거. 기본으로 1시간은 기다려야 함. 어쨌든, 난 그걸 타다가 사촌동생이 주먹으로 눈알을 쳐서 각막이 벗겨진 경험이 있다. 심지어 생일 전 날..ㅎ 아틀란티스에 줄을 서 있다고 생각해보자. 앞과 뒤로 많은 사람들이 줄 서 있고 앞 사람이 차례로 놀이기구를 타야 내 차례가 돌아온다. 아틀란티스에 줄 선 모든 사람들은 큐(Queue)의 원소를 자처하고 있는 것이다. 큐(Queue) : 데이터들이 순서대로 줄 서 있는 자료형 FIFO (First In First Out, 선입선출)으로 ..
[5] Stack, 스택 👇🏻 최근에 나에게 감동을 선사한 짤 더보기 해리포터 시리즈 책을 바닥에 1권부터 7권까지 쌓는다고 생각해보자. 가장 먼저 꺼낼 수 있는 책은 무엇인가? 가장 나중에 쌓은 7권을 가장 먼저 빼낼 수 있다. 이것이 스택의 자료형이다. 스택(Stack, 쌓다) : 가장 나중에 넣은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조 스택을 LIFO 방식이라고 얘기하는데 Last In First Out (가장 나중에 들어가고 가장 먼저 나온다, 후입선출)라는 뜻이다. 파이썬에서 우리가 사용하는 list로 이미 스택은 구현되어 있으며 내장함수를 이용해 사용하면 된다. list.append(data) : list에 data를 맨 마지막에 추가함. list.pop() : list의 맨 마지막 요소를 반환하고 해당 요소는..
[4] Linked_List, 연결리스트 (3) 👇🏻 오늘의 짤 더보기 지금까지 연결리스트의 기본 형태에 대해 알아보았다. 직전 포스트에서 이 말이 기억이 나는가? "연결리스트는 이전을 가리킬 수 없고 다음만 가리킬 수 있다" 사실 이건 거짓말이다. 우리가 지금까지 배웠던 건 Single Linked List(단일 연결리스트)이다. 베스킨라벤스에도 Single과 Double이 있듯이, Double Linked List(이중 연결리스트)가 존재한다. 그냥 넘어가면 서운할 것 같으니 한번 짚고 넘어가려고 한다. 단일 연결리스트에서는 노드를 찾을 때 node = head로부터 시작을 해 모든 노드를 탐색한 후 찾아야만 했다. 이에 반해 이중 연결리스트는 양방향으로 연결이 되어 있어 head, tail 두 노드에서부터 탐색이 가능하다. 양방향이 무슨 뜻인지는..
[3] Linked List, 연결리스트(2) 👇🏻 시작하기 전 오늘의 짤 더보기 더 늦기 전에 연결리스트에 대해 더 알아보자. 2022.04.08 - [Python/[Data Structure] 자료구조] - [2] Linked List, 연결리스트 (1) [2] Linked List, 연결리스트 (1) 자료구조 수업을 들을 때, 진짜 연결리스트가 너무 싫어서 오열한 적도 있다. 이해와 구현의 갭 차이가 너무 컸기 때문... 실습 때 집에 일찍 가고 싶어서 구글링으로 대충 복붙했다가 내 알고리 sennieworld.tistory.com 👆 저번 시간에 연결리스트로 만들어 준 18과 친구들은 잘 놀고 있었다. 그리고 그들은 오늘 올 새 친구에 설레 있었다. 새 친구 58이 도착했다. 그들은 어느때와 같이 환영인사로 기차놀이를 하려고 하는데 58은 꼭..
[2] Linked List, 연결리스트 (1) 자료구조 수업을 들을 때, 진짜 연결리스트가 너무 싫어서 오열한 적도 있다. 이해와 구현의 갭 차이가 너무 컸기 때문... 실습 때 집에 일찍 가고 싶어서 구글링으로 대충 복붙했다가 내 알고리즘, 자료구조 인생은 망했다지... 혹시나 코드 긁을 사람이라면 당장 멈춰 진심 인생 조진다. 배열의 치명적인 단점 중 하나는 '배열 크기 변경 불가'이다. 연결리스트는 이를 해결하고자 나온 개념인데 어떻게 해결했는지 스스로 제대로 아는 것이 나의 목표이다. 연결리스트( Linked List )를 직역해보면 '연결된 리스트'이다. 뭐가? 뭐가 연결되어 있을까. 바로 첫번째 알아야 할 개념인 노드(Node)가 그 '뭐'이다. 정말 머같다. 노드(Node)는 데이터(data)와 포인터(pointer)로 이루어져 있다. ..
[1] 자료구조와 배열 자료구조 : 데이터가 모여 있는 구조로 컴퓨터에서 처리해야 하는 많은 데이터를 모아 효율적으로 관리하고 구조화하기 위해 사용된다. ✓ 시간 복잡도 O(n) : n의 크기에 따라 기하급수적으로 시간 복잡도가 늘어남. [시간 적게] O(1) < O(𝑙𝑜𝑔𝑛logn) < O(n) < O(n𝑙𝑜𝑔𝑛logn) < O(𝑛2n2) < O(2𝑛2n) < O(n!) [시간 많이] 배열(Array) : 묶음 단위로 값을 순차적으로 저장하는 선형 자료 구조로 배열에는 객체가 저장되며 객체 하나하나를 원소(element)라고 한다. ✓ 배열의 특징 추가적으로 소모되는 메모리 양이 거의 없다. Cache hit rate(요청한 데이터를 캐시메모리에서 찾을 확률)가 높다. 배열을 생성하려면 메모리 상에 연속한 구간을 할당해야 해..
[re-Python] 사용자 입출력 ✓ 입력 : input은 입력되는 모든 것을 문자열로 취급한다. a = input() number = input("숫자를 입력하세요: ") ✓ 출력 : print문을 사용 # 띄어쓰기가 필요할 때는 콤마(,)를 이용한다 print("I","am","Kamea") # 한 줄에 결과값을 출력하고 싶을 때는 end=''를 이용한다. print("I am Kamea. ", end='') print("Nice to meet you")