[JS|자료구조] 자바스크립트(javascript)의 Hash(해시) 알아보기
·
💾 자료구조 & 알고리즘/이론 정리
- Hash란?해시(Hash) : 대량의 데이터들의 빠른 삽입, 삭제, 검색을 위한 자료구조 먼저, 자료구조 Hash를 사용하는 이유에 대하여 자세히 알아보자.만약 대량의 데이터를 선형 검색한다면, 찾아낼 값이 나올 때까지 모든 데이터를 확인하므로 최악의 경우 O(N)의 시간이 걸린다.하지만 대량의 데이터를 Hash 함수를 사용하여 저장한 뒤 검색한다면, 데이터는 한 번에 찾아낼 수 있을 것이다 (O(1)) 다음 그림으로 확인해볼 수 있다.  다음과 같이 해시함수를 활용하여 해시값으로 변환하여 저장한다면, 원하는 데이터를 보다 더 빠르게 탐색할 수 있다.자료구조 해시의 구조와 특징에 대하여 알아보자.관련된 단어와 개념들에 대하여 다음과 같이 정리할 수 있다.  자바스크립트에서 해시를 구현하는 방법을 알아..
[CS] CSR, SSR 파헤치기! 웹 FE 개발자라면 알아야 할 렌더링 지식
·
📝 공부 기록/CS
웹 페이지를 구성하는 여러 파일(HTML, JS, CSS)들은 어떤 과정을 거쳐서 웹 사이트가 되는 것일까?바로 렌더링 엔진을 거쳐서 화면으로 그려지게 되는 것이다.즉, 렌더링은 웹 페이지를 구성하는 해당 파일들을 브라우저상에 그려 주는 것을 의미한다.   이러한 렌더링은 과정을 수행하는 위치에 따라 클라이언트 사이드 렌더링(Client Side Rendering)과서버 사이드 렌더링(Server Side Rendering)으로 나눠진다. 클라이언트 단에서 렌더링을 수행하면 CSR, 서버에서 렌더링을 수행하면 SSR을 의미하는 데이러한 방식은 하나의 앱에서도 혼합해서 사용할 수 있기에 그 특징과 차이점을 정확히 알고원하는 목적에 따라 올바르게 사용하는 것이 중요하다. 그렇다면, 각자의 특징과 자세한 과정..
[JS|알고리즘] 탐욕 알고리즘?! (그리디 알고리즘, Greedy Algorithm)
·
💾 자료구조 & 알고리즘/이론 정리
'Greedy', 즉 탐욕적으로 해결한다.  문제 상황을 '탐욕적으로 해결한다'는 것은 무슨 말일까? 과연 어떠한 경우일까?욕심이 과한만큼 문제를 '가장 좋은 방법' 즉, 현재로서 가장 최적의 방법으로 해결하려는 경우일 것이다.  '어라? 그럼 어떠한 문제든 탐욕 알고리즘으로 푸는 것이 가장 좋은 거 아닌가?' 라고 자연스레 생각이 든다. 하지만 이는 잘못된 판단이다.탐욕 알고리즘에서 가장 중요한 키워드는 최적이 아니라 '현재'라고 할 수 있다. 이게 무슨 말이냐면..문제를 해결하기 위해 마주하는 수많은 선택의 순간순간에 지금 현재 가장 최적인 답을 선택한다는 것이다. 마치 바로 눈 앞에 있는 돈에 정신이 팔린 욕심쟁이처럼다음에 일어날 수 있는 상황(경찰에 잡힌다!)(선택의 잠재적 결점)을 전혀 고려하지..
[JS|구현 알고리즘] 백준 14719번. 빗물
·
💾 자료구조 & 알고리즘/문제 풀이
입력과 출력입력2차원 세계의 세로 길이 H (1 ≤ H ≤ 500)2차원 세계의 가로 길이 W (1 ≤ W ≤ 500)블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치부터 차례대로 W개 있는 배열 Arr형태 : 3 1 2 3 4 1 1 2출력빗물이 고이는 칸의 개수 문제 풀이 로직빗물이 고이는 칸의 개수를 어떻게 측정할 수 있을까? 먼저, 입력값인 H와 W, Arr를 이용하여 다음과 같이 새로운 배열을 만들었다. (checkArr) 만들어진 checkArr를 한 줄씩 보면서 0과 1에 따라 빗물이 고이는 칸을 계산하기로 하였다. 빗물이 고이는 칸 계산변수 설명 : 한 줄 col, 해당 줄의 인덱스 colidx, 줄 내의 각 숫자 num, 해당 숫자의 인덱스 idx 체크하고 ..
[JS|구현 알고리즘] 백준 20055번. 컨베이어 벨트 위의 로봇
·
💾 자료구조 & 알고리즘/문제 풀이
입력과 출력입력컨베이어 벨트의 길이 N내구도 0인 칸의 최대 갯수 K2N 길이의 컨베이어 벨트의 각 칸의 내구도 conArr출력정해진 단계별 과정에 맞춰 컨베이어 벨트와 로봇을 움직이다가 컨베이어 벨트에서 내구도가 0인 칸의 개수가 K 일 때, 진행되고 있던 단계 출력 stepCnt문제 풀이 로직헬퍼 변수 설명robotArr : 각 칸에 로봇이 있는 지 저장하는 용도의 배열zeroCnt : 각 단계가 끝날 때마다 계산한 내구도가 0인 칸의 개수while 문을 돌며 단계 진행 → 만약, zeroCnt가 K와 같다면 반복문 break먼저, 컨베이어벨트 한 칸씩 회전  내구도 배열 conArr 회전로봇 위치 배열 robotArr 회전findIdxArray : 로봇 위치 배열을 탐색하면서 로봇이 있는 위치들을 ..
[행사 후기] 개발자 취준생이 개발자 밋업 행사 '데브콘'에 가보았다!
·
📝 후기 및 회고록
처음으로 다녀온 3월달 개발자 밋업 행사도 벌써 1달 전이 되었다!데브콘 서울 - 삼월엔 일을 "제대로" 하자를 다녀온 뒤로,어떤 주제여도 앞으로 꾸준히 다녀야겠다 생각했다. 나와 전혀 관계 없어보이는 주제라도분명히 내가 얻을 수 있는 인사이트들이 차고 넘치기 마련이라는 걸 배웠기때문이다.   데브콘 서울 : 사월엔 브랜딩 | Festa!Festa에서 당신이 찾는 이벤트를 만나보세요.festa.io데브콘 4월 행사용 공지가 뜨자마자 신청했다. 직장인의 퇴근 후 시간에 맞춰 진행되는 행사이다보니저녁에 여유롭게 행사장에 도착할 수 있는 점이 마음에 들었다.    이번 달 주제는 '브랜딩'. 총 두 번의 발표로 구성되었는데,첫 번째 발표에서는 '링크드인'을 통한 셀프 브랜딩 효과를 다루었다. '링크드인'이라고..
[JS|구현 알고리즘] 백준 2615번. 오목
·
💾 자료구조 & 알고리즘/문제 풀이
2615번: 오목 오목은 바둑판에 검은 바둑알과 흰 바둑알을 교대로 놓아서 겨루는 게임이다. 바둑판에는 19개의 가로줄과 19개의 세로줄이 그려져 있는데 가로줄은 위에서부터 아래로 1번, 2번, ... ,19번의 번호 www.acmicpc.net 입력과 출력 입력 19 X 19 의 바둑판 출력 승부가 났다면, 이긴 바둑알의 숫자(검: 1, 흰: 2)와 성공한 5목 중 가장 왼/위쪽에 있는 바둑알의 좌표 승부가 나지 않았다면, 0 문제 풀이 로직 5목 완성할 수 있는 8방향 중 4방향만 선택하여 함수로 구현 이유) 출력할 때 5목 중 가장 왼쪽이나 위쪽에 있는 위치를 출력해야 하기에, 시작점을 출력값을 잡을 때 가로/세로/오른쪽 상향/오른쪽 하향으로 비교 가능. 단, 6목을 확인할 때 양 쪽 끝 양방향 모..
[JS|구현 알고리즘] 백준 17413번. 단어 뒤집기 2
·
💾 자료구조 & 알고리즘/문제 풀이
17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 입력과 출력 입력 문자열 String 출력 단어만 뒤집기를 한 문자열 출력 문제 풀이 로직 헬퍼 변수 설명 result : 결과를 출력하기 위해 태그와 뒤집기를 한 단어를 모아둔 배열 형태 : [’’, ‘54321’ , ‘’ ] startN: 태그를 result 변수에 저장하기 위해 ‘ a.split('').reverse().join('')) .join(' ') ) countArr = [] } } else if (word === '..
[JS|구현 알고리즘] 백준 1244번. 스위치 켜고 끄기
·
💾 자료구조 & 알고리즘/문제 풀이
1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net 입력과 출력 입력 첫째 줄, 스위치 개수 : SwitchNum 두번째 줄, 스위치 상태 : SArr → [0, 1, 0, 1, 0, 0, 0, 1] 등의 형태로 정제 세번째 줄, 학생 수 : StudentNum → 사용하지 않기에 _으로 표시 네번째 줄~ 학생 수만큼, 성별과 받은 수 표시 : Gender , InputN 출력 20개씩 끊어서 한 줄로 스위치 최종 상태 출력하기 문제 풀이 로직 먼저 입력값을 문제 풀이에 맞게 정제하고, 남학생 로직과 여학생..
[JS|구현 알고리즘] 백준 3474번. 교수가 된 현우
·
💾 자료구조 & 알고리즘/문제 풀이
3474번: 교수가 된 현우 첫째 줄에 테스트 케이스의 개수 T가 주어지고, 이어서 T개의 줄에 정수 N이 주어진다(1