전체 글
-
파이썬 자료구조 알고리즘, 코딩테스트 문제, n번째 피보나치 수 구하기Python 2024. 7. 19. 19:00
자료구조 & 알고리즘 그래프자료구조는 크게 비선형구조, 선형구조로 구분된다.선형은 말 그대로 선 Line 처럼 생긴 그래프이고 자료를 저장하고 꺼내는 것에 초점이 맞춰져 있다. 비선형은 이런 구조의 그래프를 말한다. [그래프에서 사용되는 용어] 1. 노드(Node) : 연결관계를 가진 각 데이터를 의미한다. 정점(Vertex)라고도 함2. 간선(Edge) : 노드 간의 관계를 표시한 선3. 인접 노드(Adjacent Node): 간선으로 직접 연결된 노드(또는 정점) 예를 들어 이렇게 연결 되어있다고 했을 때 제니, 연우, 지수, 사나는 각각 노드이들을 연결하는 선들은 엣지지수와 연우는 인접해있고, 제니와 지수는 인접해있지 않다. [그래프 유형]유방향 그래프(Directed Graph): 방향이 ..
-
파이썬, 자료구조 알고리즘, is_pelindrome codePython 2024. 7. 19. 12:33
자료구조 알고리즘 array : 파이썬의 리스트. 접근 쉬움, 삽입 어려움.linked list (연결리스트) : 직접 구현. 접근 어려움, 삽입 쉬움. ArrayLInked List특정 원소 조회O(1)O(N)중간에 삽입, 삭제O(N)O(1)데이터 추가데이터 추가 시 모든 공간이 다 차버렸다면 새로운 메모리 공간을 할당받아야 한다모든 공간이 다 찼어도 맨 뒤의 노드만 동적으로 추가하면 된다.정리데이터에 접근하는 경우가 빈번하다면 Array를 사용하자삽입과 삭제가 빈번하다면 LinkedList를 사용하는 것이 더 좋다. class class에는 매직 매소드인 __init__ 이 들어가는데 가장 먼저 꼭 실행되고, 얘는 첫번째 파라미터로 항상 self를 받는다. 파이썬은 self를 알아서 넣어주기 때문에..
-
파이썬 알고리즘 코딩 문제 풀기(programmers)Python 2024. 7. 16. 21:18
25. 나누어 떨어지는 숫자 배열array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 일단, 문제 그대로 for문을 돌면서 divisor로 나눴을 때 떨어지는 값들을 요소로 받는 리스트 valid_list를 생성했다.if 문으로 divisor로 나누어 떨어지는 element가 하나도 없으면 [-1] 반환하는 코드를 추가하고새로 만들어준 valid_list()를 오름차순으로 정렬한 후 반환해주면 끝def solution(arr, divisor): # arr를 돌면서, i를 divisor로 나누었을때 딱 떨어지는 값 i..
-
파이썬 자료구조 알고리즘, programmers 코딩 기초 트레이닝Python 2024. 7. 15. 03:57
Queue First In First Out 자료구조라고 해서 FIFO 라고 부른다. 선입선출이라고 이해하면 된다. 놀이기구 줄 처럼 처음에 줄 선 사람이 가장 빨리 타고 마지막에 줄 선 사람이 가장 늦게 타는 구조라고 생각하면 쉽다. 그럼 큐를 활용한 예제 문제를 풀어보자.근데 문제를 풀기 전에 deque를 알아야 한다. deque는 더블 엔디드 큐(Double-Ended Queue)의 줄임말로, 양쪽 끝에서 빠르게 삽입과 삭제를 할 수 있는 자료 구조를 뜻한다. list와 비슷하지만 성능면에서 훨씬 높은 효율성을 가진다. deque 사용법from collections import deque# deque 생성deq = deque()# 요소 추가deq.append # 오른쪽 끝에 추가deq.a..
-
[WIL] AI 웹개발 알고리즘, 7월 두 번째 주를 돌아보며..thoughts💭 2024. 7. 14. 19:32
Weekly I Learned 이번주는 정들었던 우린님, 상현님과 헤어져서 섭섭했고, 새로 시작되는 알고리즘 수업을 들으며 머리가 무거워졌다..음.. 뭔 말이야.. 내가 바본가?.. 예제가 어려운건가..?이런 생각들이 꼬리의 꼬리를 물었다.Stack 개념을 배우고 괄호 문제를 예제로 받았을 때나 Queue 개념을 배우고 N카드 문제를 예제로 받았을 때.. 그래도 N카드 문제는 데크(deque)를 공부하니 풀 수 있을 것 같은데 스택 괄호문제는 아직도 해결을 못했다.. 답을 보고도 잘 모르겠다..내일 튜터님을 찾아가야 할 것 같다.. 무서운 건... 답을 보고도 잘 이해가 안가는데.. 튜터님이 설명해주셔도 이해가 안갈까봐... 진도가 안나가서 큰일이다.. 겁이 덜컥 나는 한 주였다. 행복한 일이 하나 있다..
-
파이썬 알고리즘 초급 문제Python 2024. 7. 12. 23:21
codekata 9번 문제부터 프로그래머스 Q. 짝수의 합(정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성하시오)def solution(n): n = int(n) even_sum = 0 for i in range(1, n+1): # range함수는 마지막 값 포함X if i % 2 == 0: even_sum += i return even_sum Q. 배열의 평균값 ( 정수 배열 numbers가 매개변수로 주어짐. numbers의 원소의 평균값을 return하도록 solution 함수 완성하기)def solution(numbers): average_num = sum(numbers)/len(n..
-
[파이썬, 자료구조 알고리즘] StackPython 2024. 7. 12. 01:16
Stack 빨래통에 빨래감을 담은 후 꺼내려고 할 때, 가장 마지막에 담은 빨래감을 가장 먼저 꺼내게 되듯이,데이터를 한 곳에서만 넣고 뺄 수 있고, 마지막에 넣은 데이터를 가장 먼저 꺼낼 수 있는 Last In First Out 자료 구조. 처음부터 구현을 할 수 있어야 한다고 해서 직접 해보기로. Stack에 들어가는 기본 단위를 Node이라고 한다. 이해하기 쉽게 Node를 빨래감이라고 하면,빨래감 노드은 두가지로 구성된다. 내가 갖고 있는 빨래감과 다음에 넣을 빨래감을 가리키는 역할.class 빨래감: def __init__(self, item, next) # 갖고있는 빨래감, 다음 빨래감을 가리키는 포인터 self.item = item self.next = next 그 다음은 스택(빨..
-
파이썬, 알고리즘... 뭔말이야..Python 2024. 7. 11. 02:55
문제: 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 하.. 문제부터 이해를 안갔다.... 뭔말이야..ㅠㅠ겁이 났다. 아직 갈길이 먼데.. 일단 스스로 문제를 풀어보라는 강사님의 말씀에 한참을 바라보다가 지피티를 찾았다... 문제가 뭘 말하는지부터 좀 알려달라고... 그제서야 문제가 뭘 말하는지 이해가 됐다.그치만.. 훈련이 안되어 있기 때문일까.. 처음이어서 일까... 또 한참을 생각만 했다. 스스로는 풀지 못했고.. 이해만 했다...import stringdef get_idx(word): # point 1. ord result = [-1]*..