728x90 전체 글427 Baekjoon Training #2738 #2738 백준 문제 풀이에 감이 떨어진것 같아서 간단한 문제로 몸풀기를 하고 문제를 하나더 풀어보고자한다. a, b = map(int, input().split()) list1=[] list2=[] for i in range (a): x=list(map(int, input().split())) list1.append(x) for i in range (a): y=list(map(int, input().split())) list2.append(y) for row in range (a): for col in range (b): print(list1[row][col]+list2[row][col], end=' ') print() 브론즈5 난이도의 간단한 문제라서 가벼운 마음으로 풀려고 했는데 2차원 배열을 자주.. 2023. 1. 5. Baekjoon Training #1912 #1912 n=int(input()) num = list(map(int,input().split())) sum_list=[num[0]] for i in range(len(num) - 1): sum_list.append(max(sum_list[i] + num[i + 1], num[i + 1])) print(max(sum_list)) 처음에는 list에 n개의 숫자들을 담아두고 1개의 합을 새로운 list에 넣고 연속된 2개의 합을 새로운 list에 넣는 과정을 갯수를 증가시키며 반복하여 연속된 n개의 합까지 전부 새로운 list에 넣어서 그중 max값을 찾아서 결과를 찾으려고 했다. 그러나 코드의 효율성이 너무 안좋을 것으로 예상이 가서 새로운 방식을 고민해보았다. 그렇게 고안한 것이 모든 값을 전부 리스.. 2022. 12. 27. Udemy - 딥러닝의 모든 것(ANN) The Neuron 인공신경망(Artificial Neural Network, 이후 ANN)을 구현하기 위해 제일 먼저 이해해야하는 것은 Neuron이다. 뉴런 한개는 아무런 일도 할 수 없지만 이런 뉴런들이 군집을 만들어서 대단한 작업을 할 수 있게 된다. 협업을 하기 위해 가지돌기와 축삭돌기가 큰 역할을 한다. 가지돌기가 신호 수신기 역할을 하고 축삭돌기가 신호 발신기 역할을 한다. 축삭돌기에서 가지돌기로 신호가 전달되는 부분에는 작은 틈이 존재하는데 그것을 시냅스라고 부른다. 이제 이런 뉴런을 기술적으로 구현하고자한다. Input의 value는 표준화를 통해 일정한 범위의 값들을 function에 넣어준다. 이때 표준화란 평균을 0으로 분산을 1로 하는 방식이고 normalization이라는 일정한.. 2022. 12. 27. Udemy - 딥러닝의 모든 것(Intro) What is Deep Learning? 인공 신경망이라는 개념은 나온지 오래되었지만 그 시대에는 데이터도 부족하고 processor의 연산 능력도 부족하였기 때문에 폐기되었었다. 하지만 현대에는 기하급수적인 속도로 데이터 storage의 용량이 커지고 가격이 저렴해졌고 processor의 연산 능력 또한 증가 하였기에 신경망, 딥러닝에 대한 관심도와 중요도가 올라간 것이다. 딥러닝은 결국 인간의 뇌의 연산, 데이터 처리 과정을 모방하여 구현하고자 하는 것이다. 뇌가 감각기관을 통해 입력받은 정보를 수십억개의 뉴런을 거쳐 결과가 되는 정보를 얻는 것과 같이 인공 신경망은 input이 hidden layer를 거쳐서 output으로 value를 생성하게 된다. 2022. 12. 27. Baekjoon Training #1931 #1931 N = int(input()) time_list = [] for i in range(N): start, end = map(int, input().split()) time_list.append([start, end]) time_list.sort(key=lambda a: a[0]) # 시작 시간을 기준으로 오름차순 정렬 time_list.sort(key=lambda a: a[1]) # 끝나는 시간을 기준으로 다시 오름차순 정렬 fin_time = 0 # 회의의 마지막 시간 count = 0 # 회의의 수 for i, j in time_list: if i >= fin_time: # 시작시간이 회의의 마지막 시간보다 크거나 같을경우 count += 1 # counting 진행 fin_time = j .. 2022. 12. 26. Google ML crash course (4) Tensorflow Machine Learning용 E2E 오픈소스 플랫폼이다. Tensorflow API는 하위 수준 API를 기반으로 하는 상위 수준 API를 사용하여 계층적으로 정렬된다. ML 연구원 수준에서는 하위수준의 API를 사용하여 새로운 머신러닝 알고리즘을 만들고 연구하지만 우선 내가 따라가고자하는 ML crash course에서는 tf.keras라는 상위수준의 API를 사용하여 진행된다. Google colab Google colab을 이용하여 NumPy와 pandas라는 오픈소스에 대한 학습을 진행하는 것이 기본 과정이다. Google colab은 google colaboratory의 줄임말로 Jupitor Notebook 같은 브라우저에서 Python 스크립트를 작성하고 실행시켜볼 수.. 2022. 12. 26. Quick sort Quick sort algorithm 퀵정렬은 pivot을 설정하고 설정한 pivot을 기준으로 작은 요소들은 모두 pivot의 왼쪽으로 옮겨지고 pivot보다 큰 요소들은 모두 pivot의 오른쪽으로 옮긴다. pivot을 제외한 왼쪽 리스트와 오른쪽 리스트를 다시 정렬하고 분할된 부분 리스트에 대하여 recursion을 이용하여 정렬을 반복한다. 이때 quick sort는 unstable sorting process이다. 나누어진 리스트에서도 다시 pivot을 정하고 pivot을 기준으로 2개의 부분 리스트로 나누는 과정을 반복한다. 이때도 merge sort와 같이 divide and conquer 과정을 통해 진행이 됨을 알 수 있다. 추가적으로 pivot을 설정하는 다양한 방법이 있는데 pivot.. 2022. 12. 23. Merge sort Merge sort Divide and Conquer식 설계전략을 이용하고 추가적으로 통합하는 Combine과정을 거쳐셔 Merge sort를 진행한다. 이러한 방식을 하향식(top-down) 접근법이라고 한다. Source code 전체 code를 보기전에 psuedo code를 살펴보면 mergesort는 merge함수를 이용하였음을 알 수 있다. 전체 코드 mergesort.cpp #include "ArrayVector.h" #include #include #include #include //난수생성을 위한 library #include //string으로 형변환을 위한 library #include //실행시간 측정을 위한 library using namespace std; //divide and.. 2022. 12. 22. ArrayStack(3) postfix notation transformation 중위표기식을 후위 표기식으로 변환하는 코드이고 ArrayStack(1)의 헤더 파일을 이용한다. #include #include "ArrayStack.h" using namespace std; //후위표기식 변환 함수 string postfix_transform(ArrayStack& oper_stack, string infix) { string ans;//결과를 담아둘 ans 문자열 선언 ArrayStack checker_stack; //음수가 입력된 경우 error 처리 for (const char& check : infix) {//범위기반 반복문 사용 if (check == '-') {//음수일 가능성이 존재하는 -기호 조사 if (checke.. 2022. 11. 20. ArrayStack(2) stock_span 아래와 같이 n일수 만큼의 일련의 주식 시세표가 주여졌다고 가정했을 때, 특정일의 주가보다 작거나 같은 주가가 가장 길게 연속되는 날의 수를 조사하는 알고리즘이다. ArrayStack(1)글의 헤더파일을 이용한다. #include #include //vector STL #include "ArrayStack.h" using namespace std; //span을 computing하는 linear-time algorithm 함수 int computeSpans(vector p) { ArrayStack d;//빈 stack d 선언 int n = p.size();//integer n에 vector의 길이 대입 int h = 0;//계산용 인자 h를 0으로 초기화 int S[100];//각 .. 2022. 11. 19. OS (File System) File OS의 5대 개념 Interrupt, Process, File, Memory, I/O중 File에 대해 공부하였다. File system은 파일들을 disk에 효율적으로 저장하는 것을 목적으로 한다. 효율적으로 저장하는 것은 Space efficienty와 Time efficiency 두개로 나누어 고려한다. Space efficiency: Divide file into blocks, Store file blocks scattered in empty disk blocks Time efficiency: Remember file block location in Inode table Disk: collection of disk blocks (1 disk block = 1K byte) File: col.. 2022. 11. 18. ArrayStack(1) 괄호 매칭 ArrayStack을 이용하여 괄호 매칭 시스템을 만들어보았다. //ArrayStack Header Source Code #ifndef ARRAYSTACK_H #define ARRAYSTACK_H #include using namespace std; class StackEmpty { public: StackEmpty(const string& err) { } }; class StackFull { public: StackFull(const string& err) { } }; template class ArrayStack { enum { DEF_CAPACITY = 100 };// default stack capacity public: ArrayStack(int cap = DEF_CAPACITY);/.. 2022. 11. 18. 이전 1 ··· 27 28 29 30 31 32 33 ··· 36 다음 728x90