배열 7

<자료구조> 역순 연결 리스트

🎯 { 역순 연결 리스트 } 연결 리스트 1. 요소들끼리 붙어 있지 않고 서로의 위치정보를 포인터로 가지고 있습니다. 2. 맨 앞의 헤드 요소의 주소만 알 수 있기 때문에 특정요소를 찾기 위해서는 맨 앞에서부터 하나씩 타고 갑니다. 3. 요소를 추가하기가 비교적 쉽습니다(포인터만 수정하면 됨). 배열 1. 요소들끼리 다닥다닥 붙어있습니다 2. 인덱스를 통해서 원하는 요소를 바로 찾을 수 있습니다. 3. 요소를 추가하기가 어렵습니다(요소들의 위치를 하나씩 움직여야 함). 연결리스트 vs 배열 연결 리스트 배열 장점 1. 추가/삭제 빠름 2. 크기가 동적 3. 효율적인 메모리 할당/이용 1. 탐색 시간 빠름 2. 노드당 메모리 적음 3. 캐시 지역성이 좋음 단점 1. 탐색 시간 느림 2. 노드별 메모리 더 ..

유물/알고리즘 2022.03.13

<백준> 1152번: 단어의 개수

🤖 문제 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 풀이 const fs = require("fs"); const string = fs.readFileSync("/dev/stdin").toString().trim(); const vocaArray = string.split(" "); const result = vocaArray[0] === "" ? 0 : vocaArray.length; console.log(result); 1. (l..

유물/└ 백준 2022.02.03

<TIL> 220117 운영체제, 배열

🌱 { 운영체제 } 운영체제 개요 운영체제란 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어입니다. 역할: 자원 관리(효율성), 자원 보호(안정성), 하드웨어 인터페이스 제공(확장성), 사용자 인터페이스 제공(편리성) 운영체제는 인터페이스와 커널로 구성됩니다. 인터페이스는 커널에 명령을 전달하고 실행 결과를 사용자와 응용 프로그램에게 돌려줍니다. 커널에는 운영체제의 핵심 기능이 모여 있습니다. 컴퓨터 구조와 성능 향상 컴퓨터로 하는 작업은 대부분 CPU와 메인메모리의 협업으로 이루어집니다. 그래서 CPU와 메인메모리는 필수장치로 분류하고, 그 외 부품은 주변장치(입출력장치, 저장장치)로 분류합니다. { 자바스크립트 } 27장: 배열 자바스크립트 배열의 요..

클래스/└ TIL 2022.01.17

<백준> 10818번: 최소, 최대

🤖 문제 https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 풀이 const fs = require("fs"); const input = fs.readFileSync("/dev/stdin").toString().split("\n"); const N = +input[0]; const inputArr = input[1].split(" "); let min = +inputArr[0]; let max = +inputAr..

유물/└ 백준 2022.01.05

<TIL> 211220 배열, defer, 이벤트루프

🐣 { C언어 } 배열 내부적으로 2차원 배열도 1차원으로 저장되므로, 포인터를 활용하면 2차원 배열을 1차원처럼 사용할 수 있습니다. 함수의 인자로 배열을 전달할 때는 배열의 크기도 전달하여야 합니다. 함수의 인자로 배열을 넘겨줄 때 const 키워드를 붙여서 원본 배열의 변형을 방지합니다(배열은 기본적으로 포인터). { JavaScript } DOMContentLoaded 브라우저가 HTML을 전부 읽어 DOM 트리를 완성하면 발생합니다. 이미지, CSS 등을 기다리지 않습니다. document.addEventListener("DOMContentLoaded", callback); 브라우저는 HTML을 처리하는 중 태그를 만나면, DOM 트리 구성을 멈추고 태그를 실행합니다. beforeunload 사..

클래스/└ TIL 2021.12.20

<C++> C++ 입문 Day3

📌 #include Lesson 7 (함수) 인라인 함수 - 인라인 함수는 컴파일러에 의해 호출 부분에 직접 기록되므로, 전체적으로 속도가 향상됨 inline int max(int x, int y) { if (x > y) return x; else return y; } 함수 선언 - 정의되지 않은 함수를 호출하려면 함수 프로토타입을 선언해야 함 Default Argument (기본 인수) - 기본 인수는 함수 선언 혹은 함수 프로토타입 선언시 한 번만 지정함. - 함수 프로토타입 선언에서 기본 인수를 지정했다면, 함수 본체를 정의할 때는 기본 인수를 지정할 수 없음. - 기본 인수는 오른쪽부터 정의해야 함 void func(int a, int b, int c, int d = 2, int e = 10) 함..

유물/C, C++ 2021.11.17

<JavaScript> 코딩테스트를 위한 핵심 문법 정리 - 배열

🎯 일정에 당장 급한 코딩테스트가 생겨 빠르게 정리해보는 JS 핵심 문법 📌 참고자료 - 모던 자바스크립트 Deep Dive (이웅모 / 위키북스) 1. 배열(Array) 1-1. 순회 for (let i = 0; i < arr.length; i++) { console.log(arr[i]); } 1-2. 삭제 const arr1 = [1, 2]; let result = arr1.pop(); console.log(result); // 2 console.log(arr1); // [1] // pop 메서드는 원본 배열을 변경함 const arr2 = [1, 2, 3, 4, 5]; arr2.splice(1, 2); console.log(arr2); // [1, 4, 5] console.log(arr2.lengt..