전체 글
퍼블릭 클라우드(Public Cloud) & 멀티 클라우드(Multi Cloud)
1. 클라우드 종류 퍼블릭 클라우드 프라이빗 클라우드 하이브리드 클라우드 멀티 클라우드 https://yooniiverse.tistory.com/53 클라우드(Cloud) 서비스란? 1) 클라우드란? 클라우드 : 데이터 파일을 컴퓨터 내부가 아닌 인터넷을 통한 중앙 컴퓨터 공간(클라우드, Cloud)에 저장하는 기술 1990년대 구글, 네이버와 같은 인터넷 기업이 방대한 사용자 접속 yooniiverse.tistory.com 2-1. 퍼블릭 클라우드 코로나19 팬데믹 이후 온라인 데이터 활용량이 감당하기 어려울 정도로 증가 이런 이유로 클라우드 사용자가 더 늘어났고, 특히 누구나 제약 없이 접근 가능한 퍼블릭 클라우드가 떠오르고 있음 퍼블릭 클라우드 : 누구나 제약없이 접근 가능한 클라우드 아마존 웹서비..
알고리즘 복잡도 표현 기법
알고리즘 복잡도 계산이 필요한 이유 하나의 문제를 푸는 알고리즘은 다양할 수 있음 정수의 절대값 구하기 방법1 : 정수값을 제곱한 값에 다시 루트를 씌우기 방법2 : 정수가 음수인지 확인해서, 음수일 때만, -1을 곱하기 다양한 알고리즘 중 어느 알고리즘이 더 좋은지를 분석하기 위해, 복잡도를 정의하고 계산함 알고리즘 복잡도 계산 항목 1. 시간 복잡도 : 알고리즘 실행 속도 2. 공간 복잡도 : 알고리즘이 사용하는 메모리 사이즈 가장 중요한 시간 복잡도를 꼭 이해하고 계산할 수 있어야 함 알고리즘 시간 복잡도의 주요 요소 반복문이 지배합니다. 알고리즘 성능 표기법 Big O (빅-오) 표기법 : O(N) 알고리즘 최악의 실행 시간을 표기 가장 많이/일반적으로 사용함 아무리 최악의 상황이라도, 이정도의 ..
[탐색 알고리즘 #3] 코딩 테스트 연습문제 풀이
📌 탐색 알고리즘 - 이진 탐색 - 순차 탐색 - 코딩 테스트 연습문제 풀이 ✔ 실전 코딩 테스트 - 탐색 알고리즘 [백준 1920번] https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 시간복잡도 O(n^2) n = 5 n_list = [4, 1, 5, 2, 3] m = 5 m_list = [1, 3, 7, 9, 5] for item in m_list: if item in n_list: print(..
[탐색 알고리즘 #2] 순차 탐색(Sequential Search)
📌 탐색 알고리즘 - 이진 탐색 - 순차 탐색 ✔ - 코딩 테스트 연습문제 풀이 순차 탐색(Sequential Search) 탐색은 여러 데이터 중에서 원하는 데이터를 찾아내는 것을 의미 데이터가 담겨있는 리스트를 앞에서부터 하나씩 비교해서 원하는 데이터를 찾는 방법 from random import * rand_data_list = list() for num in range(10): rand_data_list.append(randint(1, 100)) def sequencial(data_list, search_data): for index in range(len(data_list)): if data_list[index] == search_data: return index return -1 print(r..
[탐색 알고리즘 #1] 이진 탐색(Binary Search)
📌 탐색 알고리즘 - 이진 탐색 ✔ - 순차 탐색 - 코딩 테스트 연습문제 풀이 이진 탐색(Binary Search) 탐색할 자료를 둘로 나누어 해당 데이터가 있을만한 곳을 탐색하는 방법 분할 정복 알고리즘과 이진 탐색 분할 정복 알고리즘 (Divide and Conquer) Divide : 문제를 하나 또는 둘 이상으로 나눈다. Conquear : 나눠진 문제가 충분히 작고, 해결이 가능하다면 해결하고, 그렇지 않다면 다시 나눈다. 이진탐색 Divide : 리스트를 두 개의 서브 리스트로 나눈다. Conquear 검색할 숫자 (search) > 중간값 이면, 뒷 부분의 서브 리스트에서 검색할 숫자를 찾는다. 검색할 숫자 (search) < 중간값 이면, 앞 부분의 서브 리스트에서 검색할 숫자를 찾는다...
동적 계획법과 분할 정복
동적계획법 입력 크기가 작은 부분 문제들을 해결한 후, 해당 부분 문제의 해를 활용해서, 보다 큰 크기의 부분 문제를 해결, 최종적으로 전체 문제를 해결하는 알고리즘 상향식 접근법으로, 가장 최하위 해답을 구한 후, 이를 저장하고, 해당 결과값을 이용해서 상위 문제를 풀어가는 방식 메모이제이션 기법 사용 메모이제이션 이란 -> 프로그램 실행 시 이전에 계산한 값을 저장하여, 다시 계산하지 않도록 하여 전체 실행 속도를 빠르게 하는 기술 문제를 잘게 쪼갤 때, 부분 문제는 중복되어, 재활용 됨 (예) 피보나치 수열) 분할 정복 문제를 나눌 수 없을 때까지 나누어서 각각을 풀면서 다시 병합하여 문제의 답을 얻는 알고리즘 하향식 접근법으로, 상위의 해답을 구하기 위해, 아래로 내려가면서 하위의 해답을 구하는 ..
탐욕 알고리즘(그리디)
그리디 최적의 해에 가까운 값을 구하기 위해 사용됨 여러 경우 중 하나를 결정해야할 때마다, 매순간 최적이라고 생각되는 경우를 선택하는 방식으로 진행해서, 최종적인 값을 구하는 방식 1. 동전 문제 coin_list = [500, 100, 50, 1] def min_coin_count(value, coin_list): total_coin_count = 0 details = list() coin_list.sort(reverse = True) for coin in coin_list: coin_num = value // coin total_coin_count += coin_num value -= coin_num * coin details.append([coin, coin_num]) return total_co..
클라우드(Cloud) 서비스란?
1) 클라우드란? 클라우드 : 데이터 파일을 컴퓨터 내부가 아닌 인터넷을 통한 중앙 컴퓨터 공간(클라우드, Cloud)에 저장하는 기술 1990년대 구글, 네이버와 같은 인터넷 기업이 방대한 사용자 접속을 유지하는 서비스를 제공하면서 처음 사용된 개념 마치 여러 장소에서 똑같은 구름을 관찰할 수 있는 것처럼, 클라우드에 저장된 데이터는 언제, 어디서나, 어떤 기기를 활용하든 불러올 수 있다는 장점이 큰 화제가 됨 2) 클라우드의 종류 퍼블릭 클라우드 누구나 제약 없이 접근 가능 ex) 아마존 웹서비스(AWS), 마이크로소프트의 애저(Azure), 구글 클라우드 플랫폼(GCP), 네이버 클라우드 플랫폼 등 프라이빗 클라우드 데이터 서비스에 허용된 사용자만 접근 가능 ex) 정부 전용으로 구축한 G-클라우드..
Web 3.0 이란?
1) 나도 모르게 시작된 인터넷 혁명, Web 3.0 Web 3.0 : 개인화, 지능화된 웹 우리가 알고 있던 Web 1.0과 Web 2.0의 다음 단계로 개방성, 탈 중앙화적, 개인 중심적 특성이 있음 Web 1.0 = 읽기의 시대 Web 2.0 = 누구든 쉽게 정보를 공유하고 검색 가능 Web 3.0 = 읽기, 쓰기 뿐만 아니라 기여도에 따라 소득 취득과 소유 가능 즉, 그동안 수익 창출 과정에 어려움이 많았던 아티스트에게도 굉장한 기회가 될 수 있는 것! 인류 역사를 나눠 구분하느 것도 아직 최종 합의가 되지 않았는데, 인터넷 시대는 구분이 가능할까? 최근 '웹 3.0'이라는 3세대 인터넷 시대의 개막이 멀지 않았다며, 전 세계가 뜨겁게 주목 일론 머스크(테슬라 CEO) : "웹 3.0이라는 게 존..