본문 바로가기
728x90

전체 글424

Baekjoon Training #15650 #15650 #N,M 입력 N,M=map(int,input().split()) #빈 리스트 만들어둠 s = [] #dfs기반의 함수 def dfs(start): #s의 길이가 M이되면 입력중지하고 출력해줌 if len(s) == M: print(' '.join(map(str,s))) return #s의 길이가 M이 아닌경우 N회 반복 for i in range(start, N + 1): #시작점을 start로 설정 if i in s: #이미 존재하는 수인 경우 넘어감 continue s.append(i) #리스트에 수 입력 dfs(i+1) #시작점을 한칸 미뤄서 재귀호출 s.pop() #재귀호출 종료되면 제거 dfs(1) #함수실행 지난 글에서 백트래킹 연습을 더하보려고 했던게 생각나서 한문제 더 풀어보.. 2023. 1. 21.
Baekjoon Training #2751 #2751 import sys input=sys.stdin.readline n=int(input()) num_list=[] for i in range(n): x=int(input()) num_list.append(x) num_list.sort() for i in range(n): print(num_list[i]) 파이썬 내장함수인 sorted를 사용하려하니 시간초과가 발생하는 문제가 존재하였다. 이를 해결하기 위해서는 몇몇 방법이 존재한다. 우선 내장함수 대신 성능이 좋은 sorting algorithm을 이용하는 것이다. 그러나 이는 간단한 문제가 아니고 c++ 공부중에 다양한 sorting algorithm을 다뤄봤으니 python 버전으로 다시 공부할때 작성해보도록 하고 조금 더 합리적이고 간단한 .. 2023. 1. 21.
Udemy - 머신러닝의 모든 것 (Intro+Data Preprocessing) Machine Learning 머신 러닝은 딥러닝을 포함하는 큰 개념이다. 딥 러닝 강의를 듣는데 막히지는 부분이 있지는 않았지만 머신 러닝 강의를 듣고 오는것이 보다 수월하게 이해하는데 도움이 될 것 같고 순서를 맞춰서 듣는게 효율이 좋을 것 같아서 Machine Learning강의를 먼저 듣고자 한다. Why ML is the future 인간은 data에 둘러쌓여서 살고 있다. 2005년까지 인간이 생성한 data는 130exabyte 이다. 그리고 2010년까지 인간이 생성한 data는 1200exabyte 이고 2015년에는 7900exabyte이고 2020년에는 40900exabyte이다. 인간을 둘러싼 data는 기하급수적으로 증가함을 볼 수 있다. ML을 통해서 직접 다룰 수 없는 data.. 2023. 1. 15.
Baekjoon Training #15649 #15649 백트래킹 알고리즘에 대해서 공부하기 위해서 문제들을 풀어보고자하는데 우선 백트래킹 알고리즘은 DFS 방식을 기반으로 불필요한 경우를 배제하며 정답을 탐색하는 전략이다. DFS를 기반으로 하기 때문에 stack을 이용하여 퇴각을 하면서 다음 탐색을 진행하기 때문에 백트래킹이라고 불린다. #N,M 입력 N,M=map(int,input().split()) #빈 리스트 만들어둠 s = [] #dfs기반의 함수 def dfs(): #s의 길이가 M이되면 입력중지하고 출력해줌 if len(s) == M: print(' '.join(map(str,s))) return #s의 길이가 M이 아닌경우 N회 반복 for i in range(1, N + 1): if i in s: #이미 존재하는 수인 경우 넘어감.. 2023. 1. 15.
TensorFlow 2.0 (Operations) 기본 연산 tensor = tf.constant([[1, 2], [3, 4]]) tensor #출력 기본 연산에 앞서서 2by2 행렬의 tensor array를 만든다. 덧셈 tensor + 2 #결과 스칼라 곱 tensor * 5 #결과 Numpy function # Getting the squares of all numbers in a TensorFlow tensor object np.square(tensor) #결과 array([[ 1, 4], [ 9, 16]], dtype=int32) # Getting the square root of all numbers in a tensorflow tensor object np.sqrt(tensor) #결과 array([[1. , 1.41421356], [1... 2023. 1. 14.
Baekjoon Training #2178 #2178 미로 탐색 #deque class를 collections module에서 import from collections import deque N, M = map(int, input().split()) maze = [list(map(int, input())) for _ in range(N)] def bfs(maze, start): queue = deque([start]) #행의 개수 (세로 길이) n = len(maze) #열의 개수 (가로 길이) m = len(maze[0]) #전체 좌표의 distances값을 -1 default값으로 설정 distances = [[-1 for _ in range(m)] for _ in range(n)] distances[start[0]][start[1]] = .. 2023. 1. 10.
TensorFlow 2.0 (Basic) Advantages of TensorFlow 2.0 프로젝트에서 체중감량정도를 예측하는 시스템을 만드는 역할을 맡게 되어서 구글 코랩에 의존하지 않고 텐서를 다룰줄 알아야하는 상황이와서 텐서에 대해 공부하고자 시작한 강의이다. 텐서2.0의 장점 10가지 정도를 알아보고 텐서에 대해 공부를 시작하고자 한다. 1. Backed by Google 구글이 구축하고 지원한다는 것은 사용자들이 좋은 성능의 빠른 업데이트와 새로운 기능들을 많이 이용할 수 있다는 것을 의미한다. 2. Open Source and Free 텐서를 이용하면 SOTA Machine Learning framework를 무료로 이용할 수 있다. 3. Large and Vibrant Community 텐서 2.0의 커뮤니티는 굉장히 방대하여 지.. 2023. 1. 9.
Baekjoon Training #2563 #2563 n = int(input()) #색종이 수 입력 num_list = [[0] * 100 for _ in range(100)] #0으로 채워진 100 by 100 2차원 배열 생성 for _ in range(n): #색종이 수 만큼 반복 x,y=map(int,input().split()) #색종이의 좌하단 점 입력 #색종이의 좌하단 점으로부터 우상단으로 10 by 10 색종이가 걸치는 좌표의 값을 1로 설정 for i in range(10): for j in range(10): num_list[x+i][y+j] = 1 ans = 0 #결과 값을 0으로 세팅 #열을 기준으로 값이 1인 좌표들을 counting하여 그 수만큼 ans에 더해줌 for a in num_list: ans+=a.count(.. 2023. 1. 7.
Udemy - 딥러닝의 모든 것(ANN 구축하기) 인구 통계학적 세분화 모델 해당 모델은 고객중심의 산업에서는 부가 가치가 굉장히 높고 다양한 시나리오에서 사용될 수 있도록 할 수 있는 모델이다. 우선 이번에 구현해볼 ANN은 은행의 고객 이탈률이 증가하여 그 원인을 조사하여 추후의 새로운 고객에 대해서도 이탈할 고객을 예측하는 모델이다. 우선 자료를 보면 다음과 같다. Customer Id, Surname, CreditScore, Geography, Gender, Age, Tenure, Balance, NumOfProducts, HasCrCard, IsActiveMember, EstimatedSalary와 같은 변수들은 6개월 전에 조사된 자료이고 Exited 여부는 현재 이탈한 고객인지 알려주는 종속변수이다. 위 자료는 만명의 고객 샘플로 구성되어있.. 2023. 1. 6.
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.
728x90