전체 글 126

백준 1541 파이썬(그리디)

# 잃어버린 괄호 n = input().split('-') first = sum(list(map(int,n[0].split('+')))) for i in range(1,len(n)): first -= sum(list(map(int,n[i].split('+')))) print(first) 최소의 값을 만들기 위해서는 처음에 나오는 수 이외에는 모두 빼기로 연산될 수 있도록 괄호를 넣어줘야 한다. - 기호가 나올때마다 괄호를 시작하고 닫아주면 된다. 예를 들어 55-40+30+80이면 55-(40+30+80) 55+40-30-50-60+50 이면 55+40-(30)-(50)-(60)+50 - 기호가 처음 나올땐 괄호를 열어주고 그 다음 - 기호가 나오면 괄호를 닫아주면 모두 빼는 연산이 된다. *그리디(gr..

알고리즘/Greedy 2021.09.22

백준 1931 파이썬(그리디)

백준1931 파이썬 맨 처음 풀었던 내 코드 전체 시간을 집합(set)으로 만들어주고 거기에서 차집합으로 하나하나 빼가면서 검사를 했다. 시간초과가 떠서 새로운 방법을 생각해보아야 했다. 아마도 for문이 중복되는 부분이 있어서 입력값이 커질경우 연산량이 많아지기 때문일 것이다. O(n^2) # 회의실 - 시간초과 # big o 표기법에서 어떻게 되는건지 n = int(input()) conf = [] time = set() for i in range(n): start, end = map(int,input().split()) conf.append([start,end,abs(start-end)]) for j in range(start,end+1): time.add(j) conf.sort(key=lambda..

알고리즘/Greedy 2021.09.22

OOP(Object Oriented Programming) - python

객체지향프로그램(Object-Oriented Programming, OOP)이란? 먼저 세계에서 가장 유명한 사전인 위키백과에서 말하는 정의를 살펴보자. 객체 지향 프로그래밍(영어: Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍의 패러다임 중 하나이다. 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 또한 프로그래밍을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 하며, 보다 직관적인..

파이썬 python 2021.09.13

신경망학습 최적화(optimizer)

optimizer란? - 신경망 학습중 손실함수의 값을 낮추는 매개변수를 찾는 것을 의미한다. 4가지 optimizer 1. 확률적 경사 하강법(SGD, Stochastic Gradient Descent) SGD는 손실함수의 기울기를 계산한 후 그 기울기 값에 학습률(learning rate)를 곱하여 그 값을 기존의 가중치에 적용하여 갱신해준다. 단점은 기울기(미분값)가 0이 되면 가중치를 더이상 업데이트 하지 않는다. 따라서 local 극한값이 있을때에는 global극한값을 찾을 수 없고 안장점(saddle points)에 앉아버려 더 움직이지 못하는 경우도 있습니다. 2. 모멘텀(SGD with Momentum) SGD를 개선한 알고리즘으로 이동값에 관성으로 인한 업데이트가 추가된 방법이다. 기울기..

1. 노아의 예배 (창 8:20-21)

이 블로그에 처음으로 신앙과 관련된 내용을 써보려고 한다. 이 글을 쓰기 전에 내 안에 가장 먼저 들어왔던 질문은 이것이었다. 왜 나는 나의 생각과 은혜들을 기록하려고 하는가? 이것들을 기록하는 것이 무엇을 위한 활동이 될 것인가??" 이 질문들에 대해 지금 당장 답을 내리기는 어렵다는 생각이 들었다. 아니, 하나하나 기록을 쌓아나가면서 그 의미를 찾아나가는 것이 맞는 방향이라는 생각이 들었다. 한가지 작게나마 소망하는 바가 있다면 약간의 시간이 흘러 (언제가 될진 모르겠지만) 위의 질문들에 대해서 자신있게 대답할 수 있도록 성실하게 이 기록하는 활동을 이어나가길 바란다. 그럼에도 지금 이 기록을 시작하는 이유는 있다. 지금은 말씀가운데, 기도가운데 받았던 은혜가 생생하다. 말씀을 보기만 해도, 그 생각..

끄적끄적/신앙 2021.07.25

Inverse Transform Random Sampling - Binomial distribution from Uniform distribution.

Inverse Transform Random Sampling방법을 사용하여 Uniform distribution에서 Binomial distribution을 구하기. 우선, Inverse Transfor Random Sampling이 무엇인가? 개념을 간단히 정리하자면 uniform distribution으로부터 내가 알고싶은 분포를 무작위 추출(random sampling) 할 수 있도록 해주는 개념이다. 즉, uniform distribution으로부터 random sampling한 케이스들을 내가 원하는 분포의 모양으로 변환시켜줄 수 있다. inverse transform의 단계는 다음과 같다. 1. 구하고자 하는 분포의 CDF(cumulative distribution function, 누적분포함..