전체 글

문제Q. 링크드 리스트의 끝에서 K번째 값을 반환하시오.[6] -> [7] -> [8] # 이런 링크드 리스트가 입력되었을 때, # 끝에서 2번째 값은 7을 반환해야 합니다! 접근 방법 11. 전체 Linked List의 길이를 구하는 함수 get_len() 함수 구현2. 특정 인덱스의 노드를 찾는 함수 get_node() 함수 구현3. 1의 함수를 이용해 구한 Linked List의 전체 길이에서 K를 빼면 찾고자 하는 노드의 인덱스가 됨4. 2의 함수를 이용해 3에서 구한 인덱스로 찾고자 하는 노드를 찾음class Node: def __init__(self, data): self.data = data s..

99클럽 코테 스터디 | 비기너 | 5일차https://leetcode.com/problems/implement-stack-using-queues/description/ from collections import dequeclass MyStack: def __init__(self): # Initilaize your data structure here self.__main_queue = deque() self.__sub_queue = deque() def push(self, x: int) -> None: # Push element x onto stack self.__main_queue.append(x) def pop(self) ..

finding_target = 2finding_numbers = [0, 3, 5, 6, 1, 2, 4]def is_exist_target_number_binary(target, array): array = sorted(array) # index setting cur_min = 0 cur_max = len(array) - 1 cur_search = (cur_min + cur_max) // 2 while cur_min target cur_max = cur_search - 1 cur_search = (cur_min + cur_max) // 2 return Falseresult = is_exist_target_number_binary(fin..

99클럽 코테 스터디 | 비기너 | 4일차 https://leetcode.com/problems/implement-queue-using-stacks/description/ class MyQueue: def __init__(self): self.list1 = [] self.list2 = [] def push(self, x: int) -> None: while self.list1: self.list2.append(self.list1.pop()) self.list1.append(x) while self.list2: self.list1.append(self.list2.pop()) def pop(..

Q. 다음과 같은 두 링크드 리스트를 입력받았을 때, 합산한 값을 반환하시오. 예를 들어 아래와 같은 링크드 리스트를 입력받았다면, 각각 678, 354 이므로 두개의 총합 678 + 354 = 1032 를 반환해야 한다. 단, 각 노드의 데이터는 한자리 수 숫자만 들어갈 수 있다. 접근 방법1. get_num() 함수를 통해 링크드리스트를 숫자로 변환한다 (ex. [6]-[7]-[8] → 678)2. 이를 위해 get_len() 함수를 통해 전체 링크드리스트의 길이를 구한다3. get_node() 함수를 통해 각 인덱스 위치의 데이터 값을 구한다4. 2에서 구한 길이를 통해 맨 마지막 위치의 index를 파악하고, 여기서부터 역순으로 링크드리스트의 자릿수와 3의 데이터값을 곱해 더한다 class Nod..


🖇️ 순환신경망, RNN기존의 인공신경망은 한 번에 하나의 입력을 독립적으로 처리하는 구조이기 때문에, 시간에 따른 데이터의 흐름을 처리하는 데에는 한계가 존재한다. 이러한 한계를 극복하기 위해 등장한 모델이 순환신경망 모델이며, 고정 길이의 입력이 아닌 임의의 길이를 가진 시퀀스를 처리할 수 있다. RNN은 시퀀스 모델 중 가장 대표적이고 기본적인 시퀀스 모델으로, 데이터의 순서를 고려하며, 과거의 정보를 현재의 계산에 재귀적(recurrent)으로 반영하는 구조를 가지고 있다. 즉, 이전의 '기억'을 활용하여 다음 작업을 수행할 수 있는 신경망이다. RNN은 시계열 데이터나 자연어, 음성 데이터와 같이 순서가 중요한 문제를 잘 다루며, 자동 번역, Speech to Text와 같은 자연어 처리 작..


99클럽 코테 스터디 | 비기너 | 3일차처음 접근 방법우선 처음 문제를 봤을 때 지레짐작으로 문제를 잘못 생각한 부분이 있다. 예제 입력에서 입력값이 7개인데 예제 출력에서는 6개만 입력이 되어서 '아~ '6'과 같이 0과 1이 아닌 숫자를 입력하면 아무것도 출력되지 않는구나' 라고 혼자 단단히 오해를 했다. 이 것 때문에 문제를 더 복잡하게 풀었는데, 나중에 뭔가 이상해서 다시 문제를 읽어보니.. 맨 윗줄의 입력값은 수식의 개수 T를 의미하는 것이었다.. 문제를 제대로 읽자....ㅎ.ㅎ 개선 방법오해를 바로잡은 후, 접근했던 방식은 아래와 같다. 1. 왼쪽 느낌표의 개수, 오른쪽 느낌표의 개수를 각각 left_count, right_count로 센다2. 가운데 숫자를 num으로 저장한다3. is_ri..


99클럽 코테 스터디 | 비기너 | 2일차처음 접근 방법1. 사용자로부터 입력을 받아서 input을 input_list 안에 넣는다2. for문을 통해 input_list의 입력을 하나씩 읽어온다3. 각 입력을 다시 for문을 돌리며, if-else문을 통해 대소문자, 숫자, 공백이면 해당 개수를 count한다3-1. 아스키코드를 이용해서 대소문자를 구분하였다. 위와 같이 해결했을 때, 몇 가지 개선 사항이 필요했다. 우선, 사용자가 몇 개의 입력을 줄 지 모르는데, 이 경우 처리는 어떻게 해야 하는 것인지 궁금증이 들었다. 두번째, for문이 두번 중첩되기 때문에 시간복잡도 측면에서 몹시 비효율적인 코드이기 때문에 개선이 필요했다. 세번째, 주어진 예시에서 아래와 같은 경우 공백이 포함되지 않은 채로..


99클럽 코테 스터디 | 비기너 | 1일차 def solution(list): answer = [] for i in range(len(list[0])): cur = list[0][i] all_match = True for l in list[0:]: if l[i] != cur: all_match = False break if all_match: answer.append(cur) else: answer.append('?') answer = ''.join(answer) return answern = int(input..