본문 바로가기

All91

[파이썬] 짝수와 홀수 [CODING TEST #65] https://school.programmers.co.kr/learn/courses/30/lessons/12937 def solution(num): answer = '' answer += 'Odd' if num % 2 == 1 else 'Even' return answer 2022. 8. 27.
[파이썬] x만큼 간격이 있는 n개의 숫자 [CODING TEST #64] https://school.programmers.co.kr/learn/courses/30/lessons/12954 def solution(x, n): answer = [] for i in range(n): answer.append(x*(i+1)) return answer 2022. 8. 27.
[파이썬] 배달- Summer/Winter Coding(~2018) [CODING TEST #63] https://school.programmers.co.kr/learn/courses/30/lessons/12978 하나의 노드에서 다른 노드들로의 최단 거리를 구하는 문제이므로 다익스트라를 이용했다. 양방향이므로 거리 정보가 입력될 때 a -> b, b -> a로의 길이를 함께 기록했다. 그리고 최소 힙을 활용한 우선순위 큐를 이용하여 다익스트라를 구현했다. A와 B 사이에는 여러 도로가 존재할 수 있기 때문에 처음에는 A와 B 사이에 town 리스트 정보를 생성할 때 가장 짧은 도로 정보만 넣으려 했는데, 어차피 다익스트라는 해당 노드와 인접한 모든 노드를 확인한다. town[node]를 모두 확인하여 가장 짧은 도로 정보를 이용해 갱신되므로 굳이 긴 코드를 짤 필요가 없었다. 다익스트라 상당히 어렵다.. 2022. 8. 24.
[파이썬] 최단 경로 찾기 알고리즘 [Algorithm #5] 각 노드 사이의 거리가 다르게 주어졌을 때, 최단 경로를 찾는 알고리즘에는 크게 다익스트라와 플로이드 워셜 알고리즘이 사용된다. # 다익스트라 알고리즘 : Dijkstra Algorithm 다익스트라는 시작 노드에서 출발하여, 거리가 가까운 노드부터 차례대로 방문하여 해당 노드를 거쳤을 때의 거리가 더 짧으면 최단 거리를 갱신하는 알고리즘이다. N개의 노드가 있다면 N개의 노드에 대해 N-1개의 노드를 확인해야 하므로 O(N^2)의 복잡도를 가진다. 하지만 heapq를 이용한 우선순위 큐를 쓰면 O(ElogN)까지 낮출 수 있다. (거리, 노드)로 구성된 튜플을 우선순위 큐에 넣는다. 이렇게 한 뒤, 주변 노드들을 살펴볼 때 Min Heap을 이용한 우선순위 큐를 이용하므로 거리가 가장 짧은 원소부터 p.. 2022. 8. 24.
Transformers [Deep Learning Specialization #15] Coursera의 Deep Learning Specialization - Week 5의 강의를 수강하면서 필기한 내용을 바탕으로 정리한 글입니다. 지난 시간에는 Sequence to Sequence Models 등에 대해 배웠습니다. 이번 시간에는 Transformer Network를 살펴 보겠습니다. What is Transformer Network? 지금까지 시퀀스 모델로 RNN, GRU, LSTM을 배웠습니다. RNN은 아주 단순한 형태이고, GRU와 LSTM은 문장 단어의 순서를 고려한 모델이었습니다. 모델이 변화함에 따라 정보의 흐름을 제어하는 것이 용이해졌지만, 그만큼 모델의 복잡도가 높아졌습니다. 최근 각광받고 있는 네트워크 모델이 바로 Transformer입니다. Transformer는 A.. 2022. 8. 23.
[파이썬] 두 개 뽑아서 더하기 - 월간 코드 챌린지 시즌1 [CODING TEST #62] https://school.programmers.co.kr/learn/courses/30/lessons/68644 from itertools import combinations def solution(numbers): answer = [] two_list = list(combinations(numbers,2)) for two in two_list: answer.append(two[0]+two[1]) answer = sorted(list(set(answer))) return answer 2022. 8. 23.
[파이썬] 약수의 개수와 덧셈 - 월간 코드 챌린지 시즌2 [CODING TEST #61] https://school.programmers.co.kr/learn/courses/30/lessons/77884 def solution(left, right): answer = 0 for num in range(left, right+1): count = 0 for i in range(num): if num%(i+1)==0: count += 1 if count % 2 == 0: # 짝수 answer += num else: # 홀수 answer -= num return answer 2022. 8. 22.
[파이썬] 나머지가 1이 되는 수 찾기 - 월간 코드 챌린지 시즌3 [CODING TEST #60] https://school.programmers.co.kr/learn/courses/30/lessons/87389 while문으로 하나하나 살펴도 100만회 이하이므로 모든 경우를 살피는 방법이 가능하다. def solution(n): answer = 0 number = 2 while True: if n % number == 1: return number number += 1 2022. 8. 22.
Sequence to Sequence [Deep Learning Specialization #14] Coursera의 Deep Learning Specialization - Week 5의 강의를 수강하면서 필기한 내용을 바탕으로 정리한 글입니다. 지난 시간에는 Word Embeddings와 NLP(Natural Language Processing) 아이디어 등에 대해 배웠습니다. 이번 시간에는 Sequence to Sequence Models를 살펴 보겠습니다. Conditional Language Model 기존의 모델과 다르게, 프랑스어로 구성된 문장이 입력으로 들어오면 영어로 구성된 문장으로 번역하는 모델을 생각해 봅시다. 이 모델은 입력과 출력이 모두 시퀀스로 구성된 Sequence to Sequence 모델의 구성을 띠게 됩니다. 기존 모델에서는 단순한 입력이 바로 신경망에 입력으로 들어갔지만.. 2022. 8. 20.
728x90