목록모든 글 (126)
코딩쌀롱

코드스쿼드 2주차📚 첫째 주는 완전 생소한 주제였지만 이번 주는 완전 CS 느낌은 아니라 그렇게 힘들진 않았다. 구현하는 과정이 쉽진 않았지만 지난 주보단 재미있었다. 미션을 하면서 node.js 공부가 굉장히 필요하다고 느꼈다...node.js 매우 매우 급급!! 동료들의 코드를 이해하기 위해서도 내가 사용하기 위해서도, 아니 이유 상관없이 기본이다. 공부하자.. 그리고 터미널도 잘 사용해보자. 그리고 알고리즘에 대한 우선순위 고민을 많이 했었는데, 이번 달에는 CS 공부에 더 집중하려고 한다. 이번 달만 CS고, 다음 달부터는 JS라 다음 달부터는 하기 싫을 것 같다는 생각에..(하기 싫어도 CS는 계속 공부해야 하지만ㅜㅜ) 일단 이번 달에는 주어진 미션, 학습 정리가 끝나면 남는 시간에는 CS 책을..

익숙한 것보다, 낯선 방식으로 해결하라 - 자기만의 지식을 자주 구조화 - 여러 사람의 의견을 들어보기(다양성) - 마인드 스톰 - 시모어 페퍼트 : 도전적이면서 즐거운 도전, 큰 걸 나눠서 작게 도전 개구리를 해부하지말고, 직접 만들어라 - 소프트웨어는 모두 따라 만들 수 있음 (디지털 시스템, 컴퓨터 구조, 운영체제, 컴파일러, 시스템 라이브러리) 자존심을 버리고, 자존감을 키우자 - 경쟁, 비교는 학습에 안 좋음. 비교는 어제의 나와 - 천재를 이기는 방법은 없다. 결과만 보지말고 과정을 채우자 - 그룹피어세션 중 결과(코드)만 얘기하지 말고 어떤 과정, 고민이 있었는지를 이야기하는 것도 좋음 - 코드만 보지말고 코드 이전의 과정을 생각해보자 개발 과정 전체를 보는 시야 - 논리적 판단, 추론, 분..

원형 연결 리스트(Circular Linked List) 단일 연결 리스트(Single Linked List)는 마지막 노드가 null을 가리킨다. 이 마지막 노드가 첫 번째 노드를 가리키게 하면 원형 연결 리스트가 된다. 인덱스 0의 위치에 새로운 노드를 삽입하려면 마지막 노드의 링크를 바꿔야 하므로 마지막 노드에 접근하기 위해 리스트의 제일 끝까지 순회해야 하는 문제가 생긴다. head node의 위치를 옮겨서 마지막 노드를 가리키게 하면 문제를 해결할 수 있다. 이를 변형된 원형 연결 리스트라고 한다. ✱제일 앞에 새로운 노드 추가하기 autumn, dico, kyle, beemo 네 노드가 있고, head node는 마지막 노드인 beemo이다. 이 원형 연결 리스트에 eve라는 새로운 노드를 제..

문제 LeetCode 83. Remove Duplicates from Sorted List 문제 input: 싱글 링크드 리스트의 head node output: 중복 val인 노드들을 제거한 링크드 리스트의 head node // Definition for singly-linked list. function ListNode(val, next) { this.val = (val===undefined ? 0 : val) this.next = (next===undefined ? null : next) } 노드들은 val, next 속성을 가지고 있다. 나의 풀이 while문 마지막에 현재 노드를 다음 노드로 바꿔주고, 현재 노드가 끝까지 가서 null일 때 while문을 더 이상 돌지 않게 했다. ✱바깥 wh..

문제 LeetCode 7. Reverse Integer 문제 input: 32비트 정수 output: 32비트의 범위 밖이면 0을 리턴, 범위 내면 각 숫자를 뒤집어서 리턴(양,음은 그대로) 나의 풀이 1. 수를 배열로 만들어 쪼갠다. (toString, split) 2. 순서를 반대로 뒤집는다. - 제일 앞 문자가 '-'가 아니면 : 뒤집어서 합치고 숫자로 (reverse, join, parseInt) - 제일 앞 문자가 '-'일 경우 : 제일 앞 문자를 제외하고 뒤집어서 합치고 숫자로 (splice, reverse, join, parseInt) 3. 32비트의 범위 밖이면 0을 반환 아니면 result 반환 입력값이 음수일 때 '-'를 체크하는 부분이 뭔가 찝찝했는데 json님의 풀이를 보고 답답했던..

문제 LeetCode 1. Two Sum 문제 input: 정수로 이뤄진 nums 배열, 정수 target output: nums의 두 숫자의 합이 target일 때 두 수의 인덱스를 담은 배열 나의 풀이 배열의 원소들을 두 개씩 모두 더해줘야 해서 이중 for문을 사용했고, 두 수의 합에는 순서가 상관이 없기 때문에 중복되지 않도록 j를 i + 1부터 시작하도록 했다.

배열과 링크드 리스트의 비교에서 싱글 링크드 리스트라는 전제 하에 작성하였습니다. 링크드 리스트(Linked List) 메모리는 데이터 조각을 저장하는 셀들의 거대한 집합 같은 형태로 이루어져 있다. 배열 - 연속된 빈 셀 그룹에 데이터를 저장 링크드 리스트 - 인접하지 않은 메모리 셀 묶음 링크드 리스트는 메모리 전체에 걸쳐 여러 셀에 퍼져 있을 수 있다. 링크드 리스트가 배열보다 나은 점 중 하나로 프로그램이 데이터를 저장하기 위해 메모리 내에 나란히 이어진 빈 셀 묶음을 찾을 필요가 없다는 것이다. 프로그램은 서로 인접하지 않은 여러 셀에 걸쳐 데이터를 저장할 수 있다. 링크드 리스트의 서로 인접하지 않은 이러한 셀을 '노드'라고 한다. 각 노드는 노드에 저장된 데이터뿐만 아니라 연결 리스트 내에 ..

점근적 표기법(Asymptotic notation) 빅 오 표기법 (big O) 시간의 상한 (최악의 시나리오) 최악의 경우에도 big O를 넘지 않는다. 빅 오메가 표기법 (big Ω) 시간의 하한 (최선의 시나리오) 아무리 빨라도 big Ω보다 빠를 수 없다. 빅 세타 표기법 (big θ) 평균적인 경우 (big O ~ big Ω) 빅 오 표기법(big O notation) 빅 오 표기법은 알고리즘 간 차이를 드러내고 주어진 상황에 알맞은 알고리즘을 결정하게 해주는 훌륭한 도구이다. 빅 오를 사용하면 내가 만든 알고리즘과 세상에 존재하는 범용 알고리즘을 비교할 기회가 생기며 "이 알고리즘이 일반적으로 쓰이는 알고리즘만큼 빠른가 혹은 느린가?"라고 자문해 볼 수 있다. 빅 오 표기법은 알고리즘에 얼마나..

코드스쿼드 1주차📚 이번 주는 코드스쿼드 마스터즈 과정을 시작하는 첫 주였다. 마스터즈 코스의 첫 달이 CS과정이라 처음 접하는 내용들이었다. 자바스크립트만 계속 공부했다면 모르고 넘어갔을 개념들을 알게 되고 공부할 수 있어서 좋았다. 물론 쉽지 않았고, 비전공자라 너무 다 생소한 것들이라..수업도 제대로 이해할 수 없긴 했지만 어떤 걸 공부를 해야하는지, 내가 부족한 것들을 알 수 있었다. 또 읽을 책들도 많이 쌓였다. 좋았던 것 아쉬운 게 훨씬 많지만 그래도 적어보자면, 키워드들을 검색해서 찾아보고 영상도 찾아보고 공부하면서 정리했다. 블로그에 정리도 다는 못했지만 어느 정도는 했고.. 그리고 http 인프런 강의를 시간 날 때마다 봤다. 아 그리고 중요한 것은 인스타, 유튜브 어플을 삭제했다는 것!..

컴퓨터가 인터넷으로 통신하기 위해서는 IP주소가 필요하다. IPv4는 인터넷 통신규칙으로 42억개의 IP주소를 가지고 있다. 인터넷에 연결되는 컴퓨터가 엄청나게 늘어나면서 IP주소가 부족해지게 되었고 새로운 통신 규칙인 IPv6를 만들었다. 그러나 한 번에 바꾸기 어렵기 때문에 기존의 IPv4를 아껴써야 한다. 그래서 IP를 아낄 수 있고, 통신요금을 절약할 수 있는 공유기(router)가 나오게 된다. 공유기 (router) ✱WAN(wide area network, 광역 네트워크) ① 통신사와 계약된 케이블을 공유기의 WAN에 꽂음 ② 통신사 발급 IP는 공유기의 IP가 됨 (Public IP address) ✱LAN(local area network, 지역 네트워크) ① 각각의 디바이스들(스마트폰,..