본문 바로가기

전체 글

(64)
[프로그래머스] H-Index https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [Lv2, 정답률 64%] 1. list가 비어있을 가능성 max(list)를 쓸 때, list가 비어있을 가능성을 생각해야한다. 빈 리스트에 max 함수를 쓰면 런타임 오류가 난다. 2. '이상'인지 '같을 때'인지 생각하기 이래서 틀리면 문제를 찬찬히 한번, 코드 찬찬히 한번 다시 읽어봐야한다. 문제에서는 'h번 이상 인용된 논문이 h편 이상' 이라고 했는데 내가 '이상'을 누락시키면서 테스트..
[프로그래머스] 멀리 뛰기 https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [Lv2, 정답률 68%] - 팩토리얼을 이용해 풀었음 - 수가 너무 커지면 나눗셈 시 OverFlowError가 발생함 - 나눗셈 대신 // 부호 사용해 해결 def solution(n): answer = 0 for i in range(n//2+1) : # i는 2칸이 들어가는 갯수 multiple = 1 for j in range(i+1, n-i+1) : multiple *= j for k i..
[프로그래머스] 숫자 짝꿍 [Lv.1] 정답율 56% https://school.programmers.co.kr/learn/courses/30/lessons/131128 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] - for문에서 pop으로 원소를 삭제하면 index가 실시간으로 달라지기 때문에 해당 리스트 속 모든 원소에 대해 코드를 실행하지 못할 수도 있다 - int()를 쓰면 경우에 따라 시간 초과가 될 수 있으니 주의할 것 [오답] def solution(X, Y): answer = [] X = list(X) Y = list(Y) for idx_x, x in en..
[논문] Attention Is All You Need (Feat. 동빈나 유튜브) * 이 글은 유튜브 채널 의 영상을 보고 필기한 내용입니다. https://www.youtube.com/watch?v=AA621UofTUA 개요 이 논문은 현대 자연어처리 딥러닝 기반의 핵심 아키텍처인 transformer의 시작을 알렸다. transformer는 attention이라는 매커니즘을 활용하는 아키텍처. 딥러닝 기반의 기계 번역 발전 과정 2021년 기준 최신 고성능 모델들은 transformer 아키텍처를 기반으로 하고 있다. 대표적으로 GPT는 transformer의 decoder를, BERT는 encoder를 활용하고 있다. attention 매커니즘은 2015년 처음 제안되었다. 2년 후 RNN을 전혀 사용하지 않고 attention에만 의존한 transformer가 등장했다. tra..
[프로그래머스] 개인정보수집 유효기간 [Lv.1] 정답율 40% https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] - datetime 모듈을 이용해 문자열 날짜를 컴퓨터가 이해하는 날짜 포맷으로 변경했다 - dateutil.relativedelta를 이용해 현재 날짜에서 개월 또는 일자 단위로 빼거나 더하는 법을 배웠다 [코드] from datetime import datetime from dateutil.relativedelta import relativedelta de..
[프로그래머스] 둘만의 암호 [Lv.1] 정답율 50% https://school.programmers.co.kr/learn/courses/30/lessons/155652 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] - string 모듈을 통해 영어 소문자를 알파벳 순으로 불러올 수 있다. import string alphabet_list = list(string.ascii_lowercase) [코드] import string def solution(s, skip, index): alphabet_list = list(string.ascii_lowercase) answer ..
[프로그래머스] 구명보트 [Lv.2] 정답율 68% https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] - greedy algorithm - 반복문은 1번만 써야 시간 초과 실패를 하지 않는다 - pop(n) 대신 리스트[idx]를 이용해야 시간을 줄일 수 있다. pop(n)의 시간복잡도는 O(n)인 반면, list[idx] 검색의 시간 복잡도는 O(1)이기 때문이다. - 참고로 pop, remove, insert의 시간복잡도는 모두 O(n)이다. 하지만 리스트 ..
[프로그래머스] 정수를 나선형으로 배치하기 [Lv.0] 정답율 45% https://school.programmers.co.kr/learn/courses/30/lessons/181832 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] - 변하는 수는 총 4개 각각의 변수를 모두 만들어야 한다. 변수를 2개만 만들려고 해서 계속 실패함. [코드] def solution(n): answer = [[0]*n for _ in range(n)] count = 0 min_row = min_col = 0 max_row = max_col = n-1 while count < n*n : for i in ra..