본문 바로가기

환영합니다. 이 블로그 번째 방문자입니다.

분류 전체보기

  (98)

[🐾일지] Axios get 401 Unauthorized ERROR (Request failed with status code 401) 아주 간단한 오류로 대략 72시간을 날린 사람? 오늘부터 공식 바보로 명명하겠,,, 하루라도 오류가 안나면 가시가 돋는 내 콘솔. 두구두구두구 오늘의 오류는? 로그인 쿠키 관련 get 401번 에러..ㅎ Flow 는 다음과 같다 1️⃣ [로그인 화면] 로그인(POST) -> {success: true, token: '...', email: '...'} 반환 2️⃣ [홈 화면] Auth 가져오기(GET) -> {유저 정보} 반환 -> 유저 정보 이용 3️⃣ [홈 화면] 로그아웃(GET) 맨 처음에는 react-cookie 라이브러리를 이용해서 로그인 시에 반환된 token을 쿠키에 저장한 후 쓰려고 했다. 저번 프로젝트에서는 그렇게 했기 때문이다. 쿠키에 저장한 토큰을 get headers Authoriz..
[🐾일지] Axios Network Error (Failed to load resource: net::ERR_CONNECTION_REFUSED) 프로젝트 서버 연결할 때 무조건 한 번은 눈에 보이는 에러다. 에러 주저리가 너무 길어서 읽을 염두도 안 나는... 그런 에러다. 👇🏻 에러 풀 소개 Access to XMLHttpRequest at 'http://localhost:3000/api/user/login' from origin 'http://localhost:5000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the reque..
[🐾 일지] 리액트 프로젝트 회원가입 서버 연결 (Axios 400번 에러) 원래 fetch()를 썼었으나 axios를 많이 쓴다고 해서 처음으로 사용하게 되었다. axios 공식문서를 보고 처음에 호기롭게 시도했으나 콘솔에 가득한 빨간줄...프로젝트 생명이 위험함 제일 많이 났던 400번 에러에 대해 작성해보려고 한다. 일단, 내가 하는 프로젝트는 회원가입 로직이 조금 복잡하다. 사실 복잡하지 않은데 처음해봐서 복잡하게 느껴졌다. [로직] step 1 회원가입시 보내는 정보 url method data (body) http://localhost:3000/api/user/create post nickName, email, pw, profilePicture, location 회원가입 서버 연결 시 반환된 상태와 메세지에 따른 다음 수행작업 status message next ste..
[ ➕ 오답노트] 프로그래머스 해시 - 베스트앨범 아... 이 문제... 실패했다...ㅎ 미련 없이 해답을 보기로..! 👇🏻 문제 https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 정답 코드 def solution(genres, plays): answer = [] d = {e:[] for e in set(genres)} for e in zip(genres, plays, range(len(plays))): d[e[0]].append([e[1] , e[2]]) ..
[re-Python] 문자열, 배열 정렬 (sort, sorted) 코딩테스트에서 간간히 나오는 유형이라 모르고 지나칠 수가 없는... 근데 헤깔리는... 1차원 배열을 정렬하는 것은 매우 쉽다. [1차원 배열] Ascending Sort, 오름차순(1,2,3,...) 정렬 arr = [5,2,3,1,4] # 1번 방법 sorted(arr) # 출력 : [1,2,3,4,5] # 2번 방법 arr.sort() # 출력 : [1,2,3,4,5] sorted(배열명) 이나 배열명.sort()를 사용하면 된다. 숫자, 문자, 문자열 전부 상관없이 오름차순 정렬이 된다. 다만, 대소문자가 섞여있는 배열에는 대문자 오름차순 > 소문자 오름차순 으로 정렬된다. (문자를 아스키코드 값에 대응하기 때문) 이 두 내장 메소드의 차이점은 분명해서 언제 사용할지 분명히 나누어진다. sorte..
[2021 KAKAO 블라인드 채용] 메뉴 리뉴얼 👇🏻 문제 https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 이 문제로 정말 애를 좀 먹었다. 로직은 대충 알겠는데 막상 구현에서 쩔쩔맸다. 그 이유는 다음과 같다. 조합을 구현하는데에 무한 loop 에 빠졌다. 재귀함수 잘못 짠... 파이썬에 combinations가 있었던 걸 알았다면, 더 편하게 짰을 것 같다. 나의 로직은 다음과 같다. 1. course의 반복문을 돌며 orders의 원소들을 일일히 검사한..
[🐾 일지:리액트] react-carousel 패키지 없이 애니메이션 구현하기 { # 인트로 } 프로젝트 UI를 피그마로 디자인한 후 대망의 개발을 시작했다. 맨 처음 about 페이지의 컴포넌트들을 아래와 같이 구현하려면 4가지를 생각해야 한다. ⓵ >,, { const pageSlider = [ { id: 1, component: }, { id: 2, component: }, { id: 3, component: }, ]; return ( ); }; export default Main; Aside 안의 페이지 이동 버튼은 Pagination 컴포넌트로 분리하였고 Content에 carousel 될 페이지도 각각..
DFS & BFS (3) : 노드 탐색 👇🏻 출처 더보기 https://www.youtube.com/watch?v=tWVWeAqZ0WU 2022.04.28 - [Python/[Algorithm] 알고리즘] - DFS & BFS (2) : 경로 탐색 DFS & BFS (2) : 경로 탐색 🔹 출처 더보기 https://www.youtube.com/watch?v=tWVWeAqZ0WU 2022.04.26 - [Python/[Algorithm] 알고리즘] - DFS & BFS, 깊이 우선 탐색과 넓이 우선 탐색 (1) DFS & BFS, 깊이 우선 탐색과 넓이 우선 탐색 (1).. sennieworld.tistory.com { 무방향 그래프 사이클 개수 찾기 } 위의 그래프에 연결되어 있는 노드의 집합은 {1,2}, {4,5,6,7,8}, {3} 으..
DFS & BFS (2) : 경로 탐색 🔹 출처 더보기 https://www.youtube.com/watch?v=tWVWeAqZ0WU 2022.04.26 - [Python/[Algorithm] 알고리즘] - DFS & BFS, 깊이 우선 탐색과 넓이 우선 탐색 (1) DFS & BFS, 깊이 우선 탐색과 넓이 우선 탐색 (1) 출처 : 더보기 https://www.youtube.com/watch?v=tWVWeAqZ0WU DFS와 BFS는 그래프 자료 구조를 이용한다. 더보기 2022.04.24 - [Python/[Data Structure] 자료구조] - [11] Graph, 그래프 [11] Graph, 그래프 어쨌.. sennieworld.tistory.com { 경로 찾기 } 출발 노드에서 도착 노드까지 경로가 있는지 탐색 : 있으면 tr..
[2] 백준 13458번: 시험감독 { 문제 } https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net { 40분 무코딩 로직 사고} 나눗셈 문제 결과 : 2분 문제 이해 + 4분 문제 로직 생각 { 코드 구현 } import math N = int(input()) A = list(map(int, input().split())) B, C = map(int, input().split()) judges = [0 for i in ran..
DFS & BFS (1) : 그래프 순회 출처 : 더보기 https://www.youtube.com/watch?v=tWVWeAqZ0WU DFS와 BFS는 그래프 자료 구조를 이용한다. 더보기 2022.04.24 - [Python/[Data Structure] 자료구조] - [11] Graph, 그래프 [11] Graph, 그래프 어쨌든 계획한 목록에서는 마지막 챕터이다. 그래프!!!!!!!!!!!!!! 오늘의 짤은 따로 없을 예정 하하 그래프도 참 나를 괴롭게했지...하...(기싫다).... 그림 출처 :https://python.plainenglish.io/graph-data-st.. sennieworld.tistory.com DFS : 말 그대로, 방향 그래프에서는 시작 노드부터 방향을 따라 깊숙히 탐색하는 것이다. BFS : 노드의 이웃 ..
[1] 백준 12100번: 2048 (Easy) { 문제 } https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net { 30분 노코딩 로직 사고 } 1. [입력] N 입력 ➡ board[N][N] 배열 0 초기화 ➡ board_check[N][N] 배열 0 초기화 ➡ board 원소 입력 2. [비교] board 행의 같은 수 연속이 많은지, 열의 같은 수 연속이 많은지 비교하는 함수 작성 행의 수가 연속하는 경우 & 0을 끼고 같은 수가 있는 경우, row_check[..
XMLHttpRequest 나는 "자바스크립트 완벽 가이드 6판"을 참고하여 공부했는데, 새롭게 나온 "JavaScript: The Definitive Guide, 7th Edition" 원본에는 이렇게 써있다. GOODBYE XMLHTTPREQUEST The fetch() API replaces the baroque and misleadingly named XMLHttpRequest API (which has nothing to do with XML). 사실 나도 fetch() 쓴다. 그렇지만 XMLHttpRequest를 이해하면 HTTP 스크립팅 이해에 도움이 될 것 같아서 공부하려고 한다. HTTP(HyperText Transfer Protocol) : 웹 브라우저가 서버로부터 문서를 전송받거나 폼의 내용을 보내는 방법, 그..
[Javascript] 객체와 프로퍼티 (1) 출처 : "Javascript: The Definitive Guide, by David Flanagan(O'Reilly). Copyright 2011 David Flanagan, 978-0-596-80552-4" ♦️ 객체란 객체 : 자바스크립트의 기본 데이터 타입으로 이름과 값으로 구성된 프로퍼티들의 정렬되지 않은 집합 자바스크립트에서는 문자열(string), 숫자(number), true/false, null/undefined를 제외한 나머지는 객체이다. 자바스크립트의 객체는 객체가 가진 고유 프로퍼티를 유지하는 것 외에 '프로토타입'이라고 하는 다른 객체의 프로퍼티를 상속받는다. 객체로 가장 많이 하는 작업은 객체 생성, 프로퍼티 추가, 질의, 삭제, 테스트, 열거이다. 자바스크립트에서 맨날 하는 ..
[프랑스 교환학생] 준비의 시작(컴퓨터공학과, 비자, 항공편, 머니...) 👾 [# 인트로 : 프랑스 파리로 가게 된 이유는 ] 나는 2020년 1학기에 프랑스 파리로 교환학생을 다녀왔다. 근데 RG,,, 2020년부터 COVID 팬데믹 시작이었던거...프랑스 일처리 어떻게 하는지도 RG... 어쨌든!! 지금 생각해보면 개노답이었던 나의 프랑스 파리 집 구했던 방법을 써보고자 한다. 프랑스 파리로 교환학생을 가게 된 이유는 물가를 감당할 수 있을 것 같았던 용감한 나의 생각 덕분이었다. 프랑스 파리 처음 가보는 거 아니냐구여? (・ᴥ・) (・ᴥ・) 2017년 유럽 여행을 중 제일 좋았던 곳이 파리였기에 나는 컴공생이지만 뜬금없이 파리로 교환학생을 결정했던 것이었다. 역시 여행은 여행... 집 값이 그렇게 비쌀 줄 몰라쒀... 👾 [# 프랑스 파리 준비 리스트] 사실 교환학생 갈..
[11] Graph, 그래프 어쨌든 계획한 목록에서는 마지막 챕터이다. 그래프!!!!!!!!!!!!!! 오늘의 짤은 따로 없을 예정 하하 그래프도 참 나를 괴롭게했지...하...(기싫다).... 그림 출처 :https://python.plainenglish.io/graph-data-structure-theory-and-python-implementation-ee8c9795eae7 ✅ 그래프란 그래프(Graph)란 정점과 간선으로 이루어진 자료구조이다. 이전에 배웠던 트리(노드와 간선)도 그래프의 일종인데 사실 트리가 별종이다. 다만, 트리와 그래프의 차이점이라면 다음과 같다. 1. 트리에는 루트 노드가 명백히 존재하지만, 그래프는 그런 거 없다. 2. 트리는 루트에서 리프 노드로 뻗어가는 단방향 경로만 존재하지만, 그래프는 단방향 ..
[10] Hash Table, 해시 테이블 ✅ 해시 테이블이란 해시 테이블(Hash Table)은 키(Key)에 데이터(Value)를 저장하는 자료형이다. 파이썬에서 공부했던 딕셔너리와 비슷한 개념 정도가 아니라, 해시를 구현할 때 딕셔너리 타입을 사용하면 된다. 해시 테이블은 키를 통해 데이터를 바로 찾을 수 있는 장점이 있는데 시간 복잡도가 O(1)으로 매우 빠르다. ✅ 해시 주소란 해시 주소(Hash Address)는 해시 값이다. Key를 해싱 함수로 연산해서 나오는 값이 해시 값이다. ✅ 해시 함수란 해시 함수(Hash Function)는 임의 길이의 데이터를 고정 길이의 데이터로 매핑하는 함수이다. 가장 간단한 형태는 데이터를 지정된 숫나로 나눈 뒤에 나머지를 인덱스로 사용하는 방법인데 코드로 나타내면 다음과 같다. def HashFu..
[🐾 일지] 리액트에서 <img> 경로가 안 불러와질 때... 가끔씩 개발을 하다보면 가장 기본적인 단계에서 태그가 안 보이거나 적용이 안 되거나 하는 경우가 있다. 고구마 이만 이천개정도를 물 없이 먹는 답답함에 비례하는... ⚈ ̫ ⚈ 아니 오늘은 갑자기 태그에 src 경로 설정에 파일이 분명 있는데! 안 불러와지는 것이었다..ㅎ 드디어 세상에서 가장 멍청한 사람이 된 것인가 싶었지만 다양한 방법을 시도해봤다. 1. 태그 src 상대경로, 절대경로 다 해보기 2. image 폴더를 바로 하위로 옮겨보기 3. 로 해서 background-image로 넣기 아니 근데 다 안되네... 싶을 때 뜻하지 않게 되버렸다. import Image from 'layouts/About/logo-design.png'; const logo = ; const Header = () =..
[🐾 일지] create-react-app에서 전체 화면 css 주는 법 이제 개발을 슬슬 시작하려고 해서 css로 영역 확인 좀 하려고 했더니;; 내 프로젝트는 전체 페이지를 써야 되는데... 이게... 안 된다? 인터넷을 급하게 찾아보니 1. width:100vw; height:100vh; 2. width:100%; height:100%; 이거 두 개 중에 하나라 vw, vh를 먼저 사용해봤더니 되긴 하는데 이 놈의 스크롤... 부랴부랴 %로 바꿨는데 안 된다..ʕ•̠͡•ʔ ? create-react-app으로 프로젝트를 하게 되면, 생성이 되어 있던 index.html 의 html, body를 먼저 width, height: 100%로 설정을 해 주고 나서 해당되는 컴포넌트의 css를 100%로 하면 될 줄 알았다. 근데 왠 걸... 내 App.js 파일은 아래와 같았다..
[🐾 일지] react-router-dom v6 내가 작년 12월에 팀플 할 때까지만 해도 이게 잘 먹혔다. 역시나 react-router-dom을 설치한 뒤에 저렇게 쓰니깐.. 안되네..? (◕‿◕) 로 embed를 안 해주어서 그런가 하고 공식 문서를 찾아보니 역시나 프로그래밍 세상은 너무나 빨리 변한다. 조금만 관심갖지 않으면 바로 나가리 ʕ •ᴥ•ʔ react-router-dom@v6 에서는 저 방법이 먹히지 않고 다음과 같이 해 주어야 한다. 내가 깨달은 것들 ✅ 꼭 있어야 함 ✅ component -> element 이거 말고 공식문서를 돌아다녀 보니 눈에 띄게 바뀐 것들만 아래에 정리해보도록 하겠다. 공식문서 증후군 있는 당신들을 대신 내가 후훗 ✓ 태그 안에 태그 사용 X -> 를 를 랜더링해서 사용해야 한다. # v5 # v6 }/> ..
[9] Priority Queue, 우선순위 큐 & Heap, 힙 빠지지 않는 오늘의 짤.. 더보기 사실 큐 포스트 다음이 우선순위 큐였는데 조금 공부하다 보니 트리를 알아야 할 것 같아서 트리를 하고 온 것이다. 2022.04.13 - [Python/[Data Structure] 자료구조] - [6] Queue, 큐 [6] Queue, 큐 👇🏻 오늘의 짤 : 최근에 피트 데이비슨이랑 아주 🔥 하게 장안의 화제가 되고 있는 킴언니의 짤을 준비했다. 더보기 몇일 전에 롯데월드에 갔는데 내가 가장 좋아하는 게 아틀란티스다. 근데 sennieworld.tistory.com ✅ 우선순위 큐란 큐에 대해 잠깐 요약해보면 큐는 FIFO, 먼저 들어간게 먼저 나오는, 아틀란티스 줄 구조이다. 하지만, 우선순위 큐는 우선순위를 가지고 있어, 우선순위가 높은 데이터가 먼저 나오는 자료..
[리액트 공식문서 파헤치기] JSX JSX : JavaScript Xml JSX는 HTML과 유사하지만 HTML은 아닌 언어(자바스크립트에 더 가깝다)로 XML 형식의 코드를 이용해 코드를 작성할 수 있게 하는 자바스크립트 확장 언어이다. JSX의 문법을 알아보겠다. 1. JSX의 컴포넌트 내부는 하나의 DOM트리 구조로 이루어져야 한다. 즉, 컴포넌트에 여러 요소가 있을 때, 이를 감싸주는 부모 요소가 있어야 한다. function App(){ return( 1번째 요소 2번째 요소 ) } 만약 이렇게 작성했다면, 다음과 같은 오류가 발생한다. SyntaxError: /Users/sennie/wpet-client/src/App.js: Adjacent JSX elements must be wrapped in an enclosing tag...
DOM & BOM DOM이라는 단어를 처음 들었을 때가 xml 프로그래밍 수업을 들었을 때다. 아마 html을 배우면서 들었을 가능성이 매우 높지만, xml ㅇㅇㅇ교수님이 DOM구조를 매우 강조하셔서 더욱 기억에 남는 것일수도 있다. 간단한 html 파일을 한 번 만들어보자. 안녕 여러분s 사실 DOM구조가 궁금하지는 않아 그래도 똥멍청이가 될 수는 없잖아? 이 파일을 실행시켜 보면 아래와 같이 브라우저에 나타날 것이다. 이게 어떻게 가능할까. 우리는 고작 코드 덩어리 몇 줄을 적었을 뿐인데 어떻게 브라우저는 이것을 내가 쓴 대로 보여주는 것일까. 웹 브라우저(Chrome)는 HTML 코드를 해석해 화면을 통해 보여준다 (이것을 렌더링이라고 부른다). 브라우저는 HTML을 해석할 때, 오른쪽 그림과 같이 요소들을 트리형태..
[리액트 공식문서 파헤치기] 리액트 시작하기 새로운 프로젝트를 시작하게 되었다. 리액트 공식문서도 자세히 다시 볼 겸 포스트를 작성해 본다. 더보기 https://ko.reactjs.org/ React – 사용자 인터페이스를 만들기 위한 JavaScript 라이브러리 A JavaScript library for building user interfaces ko.reactjs.org 리액트 앱을 만드는 방법은 super simple이다. 맥북을 열고 F4를 누른 후 Terminal을 열어보자. 터미널 프로젝트를 만들고 싶은 파일 경로에 아래와 같이 입력해주면 된다. npx create-react-app project-name cd project-name npm start 만약, node가 설치되어 있지 않다면 설치를 한 후 실행해야 한다. 나는 no..
[8] Binary Search Tree, 이진 탐색 트리 👇🏻 오늘도 지나칠 수 없는 오늘의 짤 더보기 저번 포스트에서 공부했던 이진 트리의 응용버전(?)을 공부하도록 하겠다. ✅ 이진 탐색 트리란 이진 탐색 트리(Binary Search Tree)는 주로 BST라고 부르고 쉽게 말해 [이진 트리 + 조건 한 개 추가]를 만족하는 자료형이다. 바로 그 조건은 듣기에는 간단하다. -> (모든 노드에 대해) 왼쪽 노드.data < 오른쪽 노드.data 이진 탐색 트리(Binary Search Tree, BST) : 모든 노드에 대해 왼쪽 노드의 데이터가 오른쪽 노드의 데이터보다 작음을 만족하는 이진 트리 이진 탐색 트리의 조건은 그다지 까다롭게 느껴지지는 않지만 막상 구현해 보면 생각보다 어렵다고 느끼게 될 것이다. 왜냐하면 트리에 데이터를 삽입하고 삭제할 때, ..
[7] Tree, 트리 👇🏻 오늘도 여김없이 오늘의 짤 더보기 무는 뿌리를 바탕으로 가지를 통해 잎이 난다. 나무에 영양분이 공급되는 경로(루트)가 트리(Tree)의 자료구조 형태와 비슷하다. 오른쪽 그림이 트리 자료구조를 시각화한 것이다. 알파벳 트리(오른쪽 그림)에서 화살표가 양분이 뻗어나가는 통로(즉, 가지)라고 하면 나무의 뿌리는 A가 될 것이다. 트리에서는 이것을 루트 노드(root node, 노드는 연결리스트에서 등장한 개념과 동일)라고 한다. 영양분이 뻗어나가는 통로를 간선(edge)라고 하고 영양분이 최종적으로 전달되는 D,E,C를 리프 노드(leaf node)라고 한다. 컴퓨터가 정하기 좋아하는 것 중 하나가 관계를 정의하는 것이다. 트리에서는 edge(화살표)를 기준으로 시작하는 노드가 부모, 가리키는 노드가..
Prototype, 프로토타입 👇🏻 참조 수준이 아니라 그대로 갖다가 글로 옮긴 거기 때문에 꼭 영상보기를 강추한돠 더보기 https://www.youtube.com/watch?v=wUgmzvExL_E 설명의 신... Prototype 프로토타입 | 제품이 출시되기 전의 원래의 형태 또는 전형적인 예, 기초, 표준 나는 프로젝트를 할 때 필요에 의해서 종종 UI를 디자인하는 경우가 있다. 디자인할 때, 피그마를 이용하는데 여기에서 Prototype이라는 단어가 굉장히 많이 쓰인다. UI 디자인은 웹 서비스나 어플을 출시하기 전에 사용자가 보게 될 화면을 만드는 것인데 이것을 '프로토타입을 작성한다'라고 한다. 그러면, 프로그래밍 언어에서 Prototype이란 무엇일까. 사실, 프로토타입은 거지같게도 자바스크립트에만 있는 특이한 문법이..
[6] Queue, 큐 👇🏻 오늘의 짤 : 최근에 피트 데이비슨이랑 아주 🔥 하게 장안의 화제가 되고 있는 킴언니의 짤을 준비했다. 더보기 몇일 전에 롯데월드에 갔는데 내가 가장 좋아하는 게 아틀란티스다. 근데 그거 RG 다들. 아틀란티스 줄 엄청 긴거. 기본으로 1시간은 기다려야 함. 어쨌든, 난 그걸 타다가 사촌동생이 주먹으로 눈알을 쳐서 각막이 벗겨진 경험이 있다. 심지어 생일 전 날..ㅎ 아틀란티스에 줄을 서 있다고 생각해보자. 앞과 뒤로 많은 사람들이 줄 서 있고 앞 사람이 차례로 놀이기구를 타야 내 차례가 돌아온다. 아틀란티스에 줄 선 모든 사람들은 큐(Queue)의 원소를 자처하고 있는 것이다. 큐(Queue) : 데이터들이 순서대로 줄 서 있는 자료형 FIFO (First In First Out, 선입선출)으로 ..
[5] Stack, 스택 👇🏻 최근에 나에게 감동을 선사한 짤 더보기 해리포터 시리즈 책을 바닥에 1권부터 7권까지 쌓는다고 생각해보자. 가장 먼저 꺼낼 수 있는 책은 무엇인가? 가장 나중에 쌓은 7권을 가장 먼저 빼낼 수 있다. 이것이 스택의 자료형이다. 스택(Stack, 쌓다) : 가장 나중에 넣은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조 스택을 LIFO 방식이라고 얘기하는데 Last In First Out (가장 나중에 들어가고 가장 먼저 나온다, 후입선출)라는 뜻이다. 파이썬에서 우리가 사용하는 list로 이미 스택은 구현되어 있으며 내장함수를 이용해 사용하면 된다. list.append(data) : list에 data를 맨 마지막에 추가함. list.pop() : list의 맨 마지막 요소를 반환하고 해당 요소는..
[4] Linked_List, 연결리스트 (3) 👇🏻 오늘의 짤 더보기 지금까지 연결리스트의 기본 형태에 대해 알아보았다. 직전 포스트에서 이 말이 기억이 나는가? "연결리스트는 이전을 가리킬 수 없고 다음만 가리킬 수 있다" 사실 이건 거짓말이다. 우리가 지금까지 배웠던 건 Single Linked List(단일 연결리스트)이다. 베스킨라벤스에도 Single과 Double이 있듯이, Double Linked List(이중 연결리스트)가 존재한다. 그냥 넘어가면 서운할 것 같으니 한번 짚고 넘어가려고 한다. 단일 연결리스트에서는 노드를 찾을 때 node = head로부터 시작을 해 모든 노드를 탐색한 후 찾아야만 했다. 이에 반해 이중 연결리스트는 양방향으로 연결이 되어 있어 head, tail 두 노드에서부터 탐색이 가능하다. 양방향이 무슨 뜻인지는..