👉🏻 9184번: 신나는 함수 실행import sys; input=sys.stdin.readlinedef w(a, b, c): if a 20 or b > 20 or c > 20: return w(20, 20, 20) if (a, b, c) in dp: return dp[(a, b, c)] if a pseudo code로 작성되어 있는 재귀 문제를 dp 형식으로 변환하는 문제였습니다.저는 w(20, 20, 20)까지의 결과값을 미리 계산하여 dp로 처리하는 방식을 사용하였습니다.
👉🏻 5623번: 수열의 합n = int(input())s = [list(map(int, input().split())) for _ in range(n)]if n == 2: result = [1, 1]else: first_value = (s[0][1] + s[0][2] - s[1][2]) // 2 result = [first_value] + [s[0][i] - first_value for i in range(1, n)]print(*result)수열 A의 첫 번째 원소를 구하기만 하면 그에 따른 나머지 원소들은 첫 번째 원소를 기반으로 모두 구할 수 있습니다.첫 번째 원소를 구하는 식은 코드와 동일합니다!n이 2일 때 result가 [1, 1]만 출력하는 것은 문제에 나와있듯 입력으로 ..
👉🏻 2422번: 한윤정이 이탈리아에 가서 아이스크림을 사먹는데N, M = map(int, input().split())bad_pairs = [set() for _ in range(N+1)] for _ in range(M): a, b = map(int, input().split()) bad_pairs[a].add(b) bad_pairs[b].add(a) count = 0for i in range(1, N-1): for j in range(i+1, N): if j in bad_pairs[i]: continue for k in range(j+1, N+1): if k not in bad_pairs[i] and ..
AbstractA new simple network architecture, the Transformer, based solely on attention mechanisms, dispensing with recurrence and convolutions entirely. Transformer 모델의 주요 특징전적으로 attention mechanism에 기반한 새로운 network architecture기존 모델들의 recurrence와 convolution layer를 완전히 대체실험 결과 및 성능두 가지 machine translation task에서 우수한 성능 입증높은 parallelization 능력기존 모델 대비 훨씬 짧은 training time 소요구체적인 성과WMT 2014 English..
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krdef solution(n): s = '124' if n dp적인 요소가 있어서 dp로 처음에 접근해보았다가 효율성 테스트에서 시간 초과가 발생하였습니다.조금 더 간단한 방법이 없을까를 고민하다가 재귀로 접근해보았습니다!진수 변환 과정에 있어 divmod() 함수가 크게 도움이 되었던 것 같습니다.
👉🏻 17176번: 암호해독기from collections import Counterdef decode_char(i): return ' ' if i == 0 else chr(i + 64) if i 우선 chr()를 이용하여 숫자를 문자열로 변환하는 과정을 함수로 작성하였습니다.단순히 변환된 문자가 평문에 들어있는지만을 판단하는 것이 아닌, 빈도 수까지 맞춰야하는 문제였습니다.때문에 Counter 클래스와 all()을 활용해 빈도 수까지 일일이 비교를 해주었습니다!
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krdef solution(sequence, k): left = right = 0 current_sum = 0 min_length = float('inf') result = [] while right k and left 투 포인터를 활용한 슬라이딩 윈도우 알고리즘으로 문제를 풀어보았습니다.처음에는 브루트포스로 연속 합 방식도 사용해보고, dp를 이용해서도 풀어보았는데 확실히 배열 내 범위가 지정되거나 점차 늘려나가야하는 문제에 있어서는 슬라이딩 윈도우 방식이 적합해보입니다.요즘 들어 투 포..
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krdef solution(number, k): stack = [] for num in number: while k > 0 and stack and stack[-1] 저는 그리디 방식을 사용해서 각 숫자에 대해 최적의 해를 구하도록 노력해봤습니다.또한 스택을 이용하여 효율적으로 숫자를 비교하고 제거할 수 있습니다.각 숫자에 대해 스택의 마지막 요소와 비교하는데, 이때 현재 숫자(num)가 더 큰 경우에만 스택에서 숫자를 제거합니다.number를 왼쪽에서 오른쪽으로 순회하므로, 결과적으로는 왼쪽의..