https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 word1[-1] word2[0]가 같지 않은 상황을 먼저 처리 후 dict에 배열을 넣어 모든 값을 보지 않고 들어오는 값의 앞글자가 같은 단어들 중에 중복이 있나 검사 def solution(n, words): eng = dict() for i in range(len(words)): if words[i-1][-1]!= words[i][0] and i != 0: return [(i%n..
VAE (Variational AutoEncoder) Decoder(생성)을 학습시키기 위해 Encoder를 붙인 것 Network를 학습시켜 train data x가 나올 확률을 구하는 것이 목적임 random noise로 부터 원하는 결과를 얻을 수 있을까? 라는 의문에서 시작됨 구조 Encoder: 학습 데이터를 Latent Variable Vector로 변환함 Latent Variable Vetor: 고양이 특징들이 담겨져있음 Decoder: Latent Variable Vector를 받아 학습 데이터와 비슷한 데이터를 만듦 입출력을 비교하여 loss를 도출함 -> 비지도 학습 Sampling 전의 벡터는 후의 벡터보다 2배 더 많다 (평균과, 분산이 각각 들어있기 때문) z분포에서 z를 변환받음..
https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 약수 이용 yellow의 h, w 를 yellow % w == 0 을 통해 구하고 (h*2) + (w*2) + 4이 brown과 맞는 지 확인 후 h, w에 각각 2를 더해서 return 해줌 def solution(brown, yellow): for i in range(1, yellow+1): if yellow % i == 0: h = yellow // i w = i if (h*2) ..
Generation model의 학습방법을 이해하기 위해서 알고 가야함 생성 모델의 개념 확률 변수 (Random variable): 시행의 결과에 따라 값이 결정되는 변수 확률 질량 함수 (Probability mass function): 이산 확률 변수 x의 분포를 나타내는 함수로, 함수 값이 곧 확률임 확률 밀도 함수 (Probability density function) : 연속 확률 변수 x의 분포를 나타내는 함수로, 밀도의 넓이가 곧 확률임 input data를 확률 변수로 본다면 64 x 64 x 3의 차원을 가지는 벡터로 표현될 수 있음 각각 64 x 74 x 3 벡터의 확률값을 추정해볼 수 있음 Pdata(x)는 확률 밀도 함수로 실제 이미지들의 정확한 분포를 나타내고 우리는 이와 비슷한..
컴퓨터 비전 분야 인식 태스크 범주형 변수 - Classification 모델, 연속형 변수 - Regression 모델 생성 태스크 순수 생성 - 별도의 조건을 입력으로 주지 않고 랜덤 이미지 생성 조건부 생성 - 특정 조건을 입력으로 주고 태스크에 맞게 랜덤 이미지 생성 생성 테스크 Generation Tasks 학습데이터의 확률 분포를 학습하여 해당 학률 분포로부터 랜덤한 샘플 데이터를 생성함 latent code를 생성 모델에 넣어 image를 얻어냄 변환 테스크 Translation Tasks 주어진 입력 이미지에 원하는 속성을 반영한 이미지를 합성 다양한 vision task image Classification Object Detection / Localization Semantic Segm..
퀵 정렬 Quick sort 분할 정복의 알고리즘 종류중 하나다 ( 분할 하여 정렬함) 정렬 알고리즘의 꽃으로 빠르다 기준점(pivot)을 정해서, 기준점 보다 작은 데이터는 왼쪽(left), 큰 데이터는 오른쪽(right)로 모으는 함수를 사용 각 왼쪽(left), 오른쪽(right)은 재귀용법을 사용해서 다시 동일 함수로 호출하여 위 작업을 반복함 return 왼쪽(left) + 기준점(pivot) + 오른쪽(right) 원리 list = [46, 97, 53, 3, 33, 65, 62, 52], Quick sort 1. pivot 선택 기본적으로 index 0을 pivot로 선택함 2. pivot을 기준으로 왼쪽(left)는 작은 수 오른쪽(right)는 큰 수로 둠, 나눈 것에 index 0을 p..
https://pasongsong.tistory.com/201?category=1090989 [Android Studio] 안드로이드 스튜디오 JAVA RecyclerView Button 클릭 이벤트 Click Linstener 만들기 public interface OnItemClickListener { void onItemClick(View view, int pos); } // 리스너 객체 참조를 저장하는 변수 private OnItemClickListener mListener = null ; // OnItemClic.. pasongsong.tistory.com item position을 가져와야하기 때문에 다른 방식으로 바꾸기로 결정! interface OnItemClickListener { void..
https://school.programmers.co.kr/learn/courses/30/lessons/12911 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 3단계로 나누어서 생각함 1. 맨 앞의 1을 10으로 바꾸고 나머지를 sort 2. 0, 1의 위치를 바꾸고 나머지 sort 2. 0, 1의 위치 바꾸기 def solution(n): bin_n = list(bin(n)[2:]) len_n = len(bin_n) for i in range(len_n-1, 0, -1): if bin_n[i] == '1' and bin_n[i-1] == '..