skinOptions.hljs
Programmers / 폰켓몬 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 폰켓몬 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/1845 나의 풀이 def solution(nums): select = len(nums) //2 set_list = set(nums) if len(set_list) > select: return select else: return len(set_list) 출력값으로 요구하는 것이 결국 "선택할 수 있는 폰켓몬 종류 개수의 최댓값 하나만 return 하면 됩니다." 라는 것이므로 선택할 수 있는 포켓몬의 수가 고를 수 있는 포켓몬 종류(set 함수로 중복 제거) 보다 작으면 선택할 수 있는 포켓몬 수를 리턴하고 그게 아니면 포켓몬 종류의 수를 ..
Programmers / 예산 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 예산 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12982 *문제 포인트가 최대로 몇개의 부서를 지원해줄 수 있는가 이기 때문에 여기에 맞추어 문제를 풀어야한다. 나의 풀이 def solution(d, budget): d.sort() cnt = 0 #예산에서 가장 작은 값들을 빼나가는 구조 for i in d: if i
[deeplearning] 딥러닝을 위한 기초 수학
·
공부정리/모두의 딥러닝 (교재 정리)
참고 서적 도서명: 모두의 딥러닝 저자 : 조태호 출판 : 길벗 발매 : 2020.01.27 딥러닝을 위한 기초 수학 꼭 알아야하는 토픽과 간단한 소개만 하고 넘어가겠습니다. 1. 일차 함수, 기울기와 y 절편 y = ax+b (a !=0)인 일차함수 식에서 x가 주어지고 원하는 y값이 있을 때, 적절한 a와 b 값을 찾는 것을 딥러닝의 과정으로 볼 수 있습니다. 2. 이차 함수와 최솟값 y = ax^2 (a != 0)은 포물선을 그리는 그래프로, 포물선의 최저점이 최솟값이 됩니다. 딥러닝을 실행할 때 이 최솟값을 찾아내는 것이 중요합니다. 이때 최솟값은 '최소 제곱법'으로 구할 수 있습니다. 3. 미분, 순간 변화율과 기울기 최소 제곱법을 사용하기에 충분한 조건이 없을 때 미분을 이용합니다. 이차 함수..
파이참에 텐서플로우(TensorFlow GPU)설치하는 법
·
python
* TensorFlow 설치에 앞서 해당 버전에 필요한 python, cuDNN, CUDA 설치가 필요합니다. 이 포스트는 여러 방법을 시행해보았지만 깔리지 않는 경우 시도하는 것을 추천합니다. https://www.tensorflow.org/install/source_windows#tested_build_configurations Windows의 소스에서 빌드 | TensorFlow Windows의 소스에서 빌드 소스에서 TensorFlow pip 패키지를 빌드하고 Windows에 설치합니다.참고: 잘 테스트되고 사전 빌드된 Windows 시스템용 TensorFlow 패키지가 이미 제공되고 있습니다.Windows용 설정 다 www.tensorflow.org GPU버전을 깔아주기 위해 해당 버전에 맞는 ..
*Tensorflow (기본적인 operations)
·
공부정리/모두를 위한 딥러닝 (강의 정리)
이 포스팅은 김성훈 교수님의 강의(모두를 위한 딥러닝)를 수강하며 공부한 내용을 정리한 것입니다. *해당 포스트는 텐서플로우 1.0.0 버전으로 작성된 소스코드입니다. 2.0.0 부터는 Session()이 사용되지 않음 *Tensorflow (기본적인 operations) import tensorflow as tf #ensorflow 를 import 하여 tf라는 이름으로 사용하기로 했다. hello = tf.constant("Hello, TensorFlow!") '''tf.constant라는 함수를 호출하여 "Hello, TensorFlow!"라는 문자열을 hello라는 변수에 저장하는 것이다. ''' sess = tf.Session() #Computational Graph를 실행하기 위해서는 Sess..
2-1. Linear Regression(선형회귀)
·
공부정리/모두를 위한 딥러닝 (강의 정리)
이 포스팅은 김성훈 교수님의 강의(모두를 위한 딥러닝)를 수강하며 공부한 내용을 정리한 것입니다. 섹션2. Linear Regression(선형회귀)의 개념 Predicting exam score: regression 어떠한 학생이 공부한 시간 만큼 어떠한 성적(0~100)이 나온다는 데이터로 Supervised learning을 시킨다고 하자. Regression이란 모델이 Training data를 가지고 Regression model이 학습을 하게 되었을 때, 7시간 공부한 학생에 대한 점수를 요청하면, 그에 대한 y값을 준다는 맥락이다. 예시를 정형화하여 설명해보자. (Linear) Hypothesis regression 모델을 학습한다는 것은 가설을 세울 필요가 있다. 어떤 Linear한 Mod..
1. Machine Learning Basics
·
공부정리/모두를 위한 딥러닝 (강의 정리)
이 포스팅은 김성훈 교수님의 강의(모두를 위한 딥러닝)를 수강하며 공부한 내용을 정리한 것입니다. 섹션1. 머신러닝의 개념과 용어 Machine Learning (기계 학습)이란 무엇인가? 통계적인 경험을 통해 문제의 해법을 찾아가는 인간의 특징을 기계에 적용한 것이 머신러닝(machine learning)이라고 할 수 있다. 기계가 일일이 코드로 명시하지 않은 동작을 데이터로부터 학습하여 실행할 수 있도록 하는 알고리즘을 개발하는 연구 분야이다. Deep Learning 이란 무엇인가? 딥러닝(deep learning)은 더욱 고도화된 머신러닝 방법으로 사진과 같은 고차원 데이터에서 기계 스스로 패턴을 알아낼 수 있다는 장점이 있다. 예를 들면, 개와 고양이를 분류할 때 기존 머신러닝은 일반적으로 귀,..
[알고리즘] 그래프 탐색 알고리즘 : DFS & BFS / Python 파이썬
·
python/자료구조 & 알고리즘
그래프 탐색 알고리즘 DFS & BFS 탐욕(Search)이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정이다. 대표적인 그래프 탐색 알고리즘으로는 DFS와 BFS가 있다. * 코딩테스트에서 자주 등장하는 유형 이번 포스트에서는 DFS, BFS에 대해 살펴볼 예정이다. DFS (Depth-First Search) DFS는 깊이 우선 탐색이라고도 부르며, 그래프의 깊은 부분을 우선적으로 탐색하는 알고리즘이다 DFS는 스택 자료구조(또는 재귀 함수)를 이용한다 탐색 시작 노드를 스택에 삽입하고 방문 처리를 한다 스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문처리한다. 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼낸다 더 이상 2번의 과정을 ..
[알고리즘] 그리디 & 구현 / Python 파이썬
·
python/자료구조 & 알고리즘
그리디 알고리즘이란 그리디 알고리즘(탐욕법)은 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미합니다. 일반적인 그리디 알고리즘은 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구합니다. 그리디 해법은 그 정당성 분석이 중요합니다. 단순히 가장 좋아보이는 것을 반복적으로 선택해도 최적의 해를 구할 수 있는지 검토합니다. [문제 상황] 루트 노드부터 시작하여 거쳐 가는 노드 값의 합을 최대로 만들고 싶음 Q. 최적의 해는 무엇인가? 일반적인 상황에서 그리디 알고리즘은 최적의 해를 보장할 수 없을 때가 많음 하지만 코딩 테스트에서 대부분의 그리디 문제는 탐욕법으로 얻은 해가 최적의 해가 되는 상황에서 이를 추론할 수 있어야 풀리도록 출제됨 탐욕 알고리즘 문제를 해결하는 방법 선택 절차(..
문제 / 격자판 최대합 / Python
·
coding test - python/기본기 문제
문제 제목: 격자판 최대합 나의 풀이 (80점) n = int(input()) d = list(list(map(int, input().split())) for _ in range(n)) sum_list = [] # 각 행열,대각선의 합을 저장하는 리스트 cross1_list = [] #대각선을 저장하는 리스트 cross2_list = [] #반대 대각선을 저장하는 리스트 for i in range(n): sum_list.append(sum(d[i][:n])) #각 행들의 합 sum_list.append(sum(d[:n][i])) #각 열들의 합 cross1_list.append(d[i][i]) #대각선의 수 cross2_list.append(d[i][n-i-1]) #반대대각선의 수 sum_list.app..
[라이브러리] itertools / Python
·
python/라이브러리
itertools 란 효율적인 루핑을 위한 이터레이터를 만드는 함수이다. itertools에는 아래와 같은 조합형 이터레이터가 있다. combinations() combinations_with_replacement() product() permutations() combinations(iterable, r) : iterable에서 원소 개수가 r개인 조합 뽑기 from itertools import combinations l = [1,2,3] for i in combinations(l,2): print(i) ''' 출력 결과: (1, 2) (1, 3) (2, 3) ''' combinations_with_replacement(iterable,r) : iterable에서 원소 개수가 r개인 중복 조합 뽑기 ..
Programmers / 소수 만들기 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 소수 만들기 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12977 나의 풀이 def solution(nums): a = [] cnt = 0 for i in range(0, len(nums) - 2): # 리스트의 숫자 세개를 고름(조합) for j in range(i + 1, len(nums) - 1): for x in range(j + 1, len(nums)): a.append(nums[i] + nums[j] + nums[x]) #약수 판별 isPrime = True for x in a: for i in range(2,x//2+1): if x % i == 0: isPrime = False ..