skinOptions.hljs
[기초] 객체와 클래스 / Python 파이썬
·
python/기초
참고 서적 컴퓨팅 사고를 위한 파이썬 한선관, 김태령 저 | 생능출판사 | 2022년 01월 03일 객체(Object)와 클래스(Class) 클래스는 객체의 기본 틀이 되는 속성이다. 예를 들어서 마커 펜을 생산하는 공장이 있다고 하자, 마커 펜을 만들어내는 공장의 기계를 클래스라고 하고 각각 다른 색 잉크와 다른 색 커버가 있는 각각이 마커펜을 객체라고 할 수 있다. class seal: #클래스 정의 pass stamp = seal() #인스턴스 = 클래스명() 여기서 stamp의 타입을 알아보자. >>> type(stamp) '__main__.seal' 임을 확인할 수 있다. 이 타입은 이 객체가 seal 클래스로부터 만들어진 인스턴스(instance, 클래스의 구조로 만들어진 실체)라는 의미이다...
[deeplearning] 딥러닝의 동작 원리 - 로지스틱 회귀
·
공부정리/모두의 딥러닝 (교재 정리)
참고 서적 도서명: 모두의 딥러닝 저자 : 조태호 출판 : 길벗 발매 : 2020.01.27 참 거짓 판단 장치 : 로지스틱 회귀(Logistic regression) 로지스틱 회귀는 참과 거짓 중에 하나를 내놓는 과정이다. 로지스틱 회귀는 선형 회귀와 마찬가지로 적절한 선을 그려가는 과정이다. 다만 직선이 아니라, 참(1)과 거짓(0) 사이를 구분하는 S자 형태의 선을 그어주는 작업이다. (1) 시그모이드 함수 그런데 위와 같은 S자 형태로 그래프가 그려지는 함수가 있는데, 바로 시그모이드 함수(sigmoid function)이다. 여기서도 구해야 하는 값은 선형 회귀 때와 마찬가지로 ax + b이다. 먼저 a는 그래프의 경사도를 결정한다. a 값이 커지면 경사가 커지고 a 값이 작아지면 경사가 작아진..
[deeplearning] 딥러닝의 동작 원리 - 경사 하강법
·
공부정리/모두의 딥러닝 (교재 정리)
참고 서적 도서명: 모두의 딥러닝 저자 : 조태호 출판 : 길벗 발매 : 2020.01.27 경사 하강법(Gredient Descent) : 오차 수정하기 (오차가 가장 작은 방향으로) 미분 기울기를 이용하는 경사 하강법은 오차를 비교하여 가장 작은 방향으로 이동시키는 방법이다. 위와 같이 각 점에서의 순간 기울기가 그려지면 우리가 찾는 최솟값 m에서의 순간 기울기를 눈여겨 봐야 한다. 그래프가 이차 함수 포물선이므로 꼭짓점의 기울기는 x축과 평행한 선이 된다. 즉, 기울기가 0이다. 따라서 우리가 할 일은 '미분 값이 0인 지점'을 찾는 것이 된다. 이를 위해서 다음과 같은 과정을 거친다. a1에서 미분을 구한다. 구해진 기울기의 반대 방향(기울기가 +면 음의 방향, -면 양의 방향)으로 얼마간 이동시..
[deeplearning] 딥러닝의 동작 원리 - 선형 회귀
·
공부정리/모두의 딥러닝 (교재 정리)
참고 서적 도서명: 모두의 딥러닝 저자 : 조태호 출판 : 길벗 발매 : 2020.01.27 가장 훌륭한 예측선 긋기 : 선형 회귀 (Linear Regression) 선형 회귀의 정의 "학생들의 중간고사 성적이 [ ]에 따라 다 다르다." 여기서 [ ]에 들어갈 내용을 '정보'라고 한다. 성적을 변하게 하는 '정보' 요소를 x라고 하고, 이 x 값에 따라 변하는 '성적'을 y라고 할 때, 'x 값이 변함에 따라 y 값도 변한다'는 이 정의 안에서, 독립적으로 변할 수 있는 값 x를 독립 변수라고 한다. 또한, 이 독립 변수에 따라 종속적으로 변하는 y를 종속 변수라고 한다. 선형 회귀란 독립 변수 x를 사용해 종속 변수 y의 움직임을 예측하고 설명하는 작업을 말한다. 하나의 x 값 만으로도 y 값을 설..
Programmers / 최댓값과 최솟값 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 최댓값과 최솟값 (2단계) 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12939 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 나의 풀이 def solution(s): arr = s.split(' ') new = [] result = '' for i in arr: new.append(int(i)) a = min(new) b = max(new) result += str(a) result += ' ' result += str(b) return ..
Programmers / 최솟값 만들기 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 최솟값 만들기 (2단계) 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12941 나의 풀이 def solution(A,B): # 두 수를 고르고 곱한 값을 최소로 하는 것이 목표, 뽑았던 숫자는 못뽑음 A = sorted(list(A)) B = sorted(list(B), reverse = True) return sum([x*y for x,y in zip(A,B)]) 문제의 조건대로 따라가면 되는 2단계 중에서도 1단계 수준의 문제이다. ※ 알아야 할 것 - sorted 함수를 이용하여 오름차순으로 정렬한다. - zip 함수를 이용하여 두 값을 곱한다.
[자료구조] 해시, 해시법(hashing) / Python 파이썬
·
python/자료구조 & 알고리즘
해시법 해시법(hashing) '데이터를 저장할 위치 = 인덱스'를 간단한 연산으로 구하는 것을 말한다. 이 방법은 원소의 검색뿐 아니라 추가 · 삭제도 효율적으로 수행할 수 있다. 배열의 키(원소의 값)를 원소 갯수인 7로 나눈 나머지를 해시값(hash value)라고 한다. 해시값은 데이터에 접근할 때 기준이 된다. 11을 7로 나눈 나머지는 4이므로 x[4]에 바로 저장한다. 이렇게 키를 해시값으로 변환하는 과정을 해시 함수(hash function)라고 한다. 또한 일반적으로 해시 함수는 나머지를 구하는 연산 또는 그 연산을 응용할 때 주로 사용한다. 해시 테이블에서 만들어진 원소를 버킷(bucket)이라고 한다. 해시 충돌 앞에서 만든 해시 테이블에 18을 추가하면 7로 나눈 나머지는 4이므로 ..
[자료구조] 검색 알고리즘 (선형 검색/ 이진 검색) / Python 파이썬
·
python/자료구조 & 알고리즘
검색 알고리즘이란? 정렬은 흩어져있는 데이터를 키 값(주민등록번호, 학번 등)을 이용하여 순서대로 열거하는 알고리즘이다. 검색은 데이터(정렬이 안된 데이터 , 정렬이 된 데이터)에서 키 값에 해당되는 데이터를 찾는 알고리즘이다. 검색(Search) : n 개의 데이터를 검색한다. 가장 간단한 검색 알고리즘은 선형 검색(Sequential Search) 알고리즘이다. n개의 데이터를 놓고 한 개씩 검색하는 방법이다. 데이터가 정렬이 된 상태에서는 이진 검색(Binary Search) 방법이 더 효율적이다. 이진 검색은 전체 데이터의 중간에 있는 데이터를 비교하면서 찾는 데이터가 앞/뒤 중 어디 있는지 알 수 있다. 선형 검색 선형 검색 알고리즘은 직선 모양으로 늘어선 요소의 배열에서 앞부터 순차적으로 검색..
[기초] 배열(Array) / Python 파이썬
·
python/기초
- 배열(Array) 같은 타입의 변수들로 이루어진 유한 집합 배열을 구성하는 각각의 값을 배열 요소(element)라고 하며, 배열에서의 위치를 가리키는 숫자는 인덱스(index)라고 함 파이썬에서는 리스트 타입이 배열 기능을 제공 같은 종류의 데이터를 효율적으로 관리해야 하는 경우에 사용 같은 종류의 데이터를 순차적으로 저장 - 배열의 장단점 장점 빠른 접근이 가능 단점 미리 최대 길이를 지정해야 함 추가/삭제가 쉽지 않음 - 파이썬과 배열 1차원 배열 # 1차원 배열 : 리스트로 구현 시 data = [1,2,3,4,5,6,7,8] print(data) # [1, 2, 3, 4, 5, 6, 7, 8] 2차원 배열 # 2차원 배열 : 리스트로 구현 시 data = [[1,2,3],[4,5,6],[7,..
Programmers / *[1차] 다트게임 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: [1차] 다트게임 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/17682 나의 풀이(미완성) def solution(dart): arr=[] tmp = [] sum = 0 for x in dart: #문자열 분리 arr.append(x) for i in range(len(arr)): if arr[i].isnumeric(): arr[i] = int(arr[i]) for i in range(1,len(arr)): #10 처리 if arr[i-1] == 1 and arr[i] == 0: arr[i-1] = 10 arr.pop(i) for i in range(1,len(arr)):#S,D,T if a..
Programmers / 로또의 최고 순위와 최저 순위 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 로또의 최고 순위와 최저 순위 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/77484 나의 풀이 def solution(lottos, win_nums): cnt = [0,0] num = [] zero_cnt = 0 for i in lottos: if i in win_nums: num.append(i) if i == 0 : zero_cnt += 1 if len(num) == 0 : cnt[1] = 6 elif len(num) == 1: cnt[1] = 6 elif len(num) == 2: cnt[1] = 5 elif len(num) == 3: cnt[1] = 4 elif len(num) == ..
Programmers / 숫자 문자열과 영단어 / Python
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 숫자 문자열과 영단어 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/81301 풀이 1 딕셔너리 리플레이스 def solution(s): nums = { 'zero' : '0', 'one' : '1', 'two' : '2', 'three' : '3', 'four' : '4', 'five' : '5', 'six' : '6', 'seven' : '7', 'eight' : '8', 'nine' : '9' } for key, value in nums.items(): s = s.replace(key,value) return int(s) 풀이 2 리스트 리플레이스 ( 인덱스와 해당 문자열이 같은 것 이용)..