DEVELOP
article thumbnail
[ Java] 백준 11660번 : 구간 합 구하기5
CODING TEST/Baek-joon 2024. 1. 17. 22:56

구간합 구간 합은 합 배열을 이용하여 시간 복잡도를 더 줄이기 위해 사용하는 특수한 목적의 알고리즘이다. 구간 합 핵심 이론 구간 합 알고리즘을 활용하려면 먼저 합 배열을 구해야 한다. 합 배열 S 정의 S[i] = A[0] + A[1} + A[2] + ... + A[i-1] + A[i] // A[0]부터 A[i]까지의 합 합 배열은 기존의 배열을 전처리한 배열이라 생각하면 된다. 이렇게 합 배열을 미리 구해 놓으면 기존 배열의 일정 범위의 합을 구하는 시간 복잡도가 O(N)에서 O(1)로 감소한다. 합 배열 없이 배열 합을 구하는 경우, 최악의 경우는 i가 0이고 j가 N인 경우로 시간 복잡도는 O(N)이다. 이런 경우 앞에서 알아본 합 배열을 사용하면 O(1) 안에 답을 구할 수 있다. 합 배열 S를..

article thumbnail
[ 모던 자바스크립트 Deep Dive ] 22. this

모던 자바스크립트 Deep Dive 를 읽고 작성한 학습용 게시글입니다. 모던 자바스크립트 Deep Dive: 자바스크립트의 기본 개념과 동작 원리 269개의 그림과 원리를 파헤치는 설명으로 ‘자바스크립트의 기본 개념과 동작 원리’를 이해하자! 웹페이지의 단순한 보조 기능을 처리하기 위한 제한적인 용도로 태어난 자바스크립트는 과도 wikibook.co.kr this 키워드 객체는 상태(state)를 나타내는 프로퍼티와 동작(behavior)을 나타내는 메서드를 하나의 논리적인 단위로 묶은 복합적인 자료구조이다. 메서드는 자신이 속한 객체의 상태(프로퍼티)를 참조하고 변경할 수 있어야 한다. 그러기위해서는 먼저 자신이 속한 객체를 가리키는 식별자를 참조할 수 있어야 한다. 객체 리터럴 방식으로 생성한 객체..

article thumbnail
[ JavaScript ] 정규표현식, 더 이상 피하지 말자 ( + JavaScript에서 정규표현식 사용하기 )
CODING TEST 2024. 1. 12. 02:39

코테를 풀다보면 정규표현식으로 간단히 해결할 수 있는 문제들이 꽤나 나온다. 물론 정규표현식을 사용하지 않더라도 어떻게든 풀수야 있지만, 알고 있는 것과 모르는 것에는 차이가 분명히 있을 것 같다. 그 동안에는 잘 외워지지도 않고 헷갈려서 계속 공부하기를 미뤄왔는데, 이번에는 자주 쓰는 표현 위주로 제대로 공부하고자 한다. 정규표현식 연습용 사이트 RegExr: Learn, Build, & Test RegEx RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp). regexr.com 정규표현식이란? : 프로그래밍에서 문자열을 다룰 때, 문자열의 일정한 패턴을 표현하는 일종의 형식 언어를 말한다. - 정규식..

article thumbnail
[ 모던 자바스크립트 Deep Dive ] 24장 클로저

모던 자바스크립트 Deep Dive 를 읽고 작성한 학습용 게시글입니다. 모던 자바스크립트 Deep Dive: 자바스크립트의 기본 개념과 동작 원리 269개의 그림과 원리를 파헤치는 설명으로 ‘자바스크립트의 기본 개념과 동작 원리’를 이해하자! 웹페이지의 단순한 보조 기능을 처리하기 위한 제한적인 용도로 태어난 자바스크립트는 과도 wikibook.co.kr 클로저 클로저는 자바스크립트 고유의 개념이 아니다. 함수를 일급 객체로 취급하는 함수형 프로그래밍 언어(하스켈, 리스프, 얼랭, 스칼라 등)에서 사용되는 중요한 특성이다. MDN에서는 클로저에 대해 다음과 같이 정의하고 있다. A closure is the combination of a function and the lexical enviornment..

article thumbnail
[ 모던 자바스크립트 Deep Dive ] 40.8장 DOM 요소의 기본 동작 조작(e.preventDefault 와 e.stopPropagaion)

프로젝트를 진행하면서 문제 해결을 하기 위해 찾아보다가 stopPropagation() 개념을 처음 접했다. e.preventDefault() 는 몇번 써봤는데 비슷한 결(?)인 것 같고, 차이점을 확실히 알고 싶어서 모던 JS 책에서 찾아보게 되었다. 해당 개념을 찾아보게 된 상황 부모 컴포넌트는 기록된 식단 아이템 컴포넌트로서, 클릭하면 해당 식단 아이템의 상세페이지로 이동하는 onClick 이벤트 핸들러 함수가 지정되어 있음 자식 컴포넌트는 휴지통 그림 버튼이고, 해당 버튼을 눌렀을 때 팝업을 띄우는 컴포넌트임 문제는 휴지통을 클릭했을 때 팝업창이 뜨지 않고 상세페이지로 이동해버리는 것 현재 상황에서는 휴지통 버튼 역시 컨테이너에 속하므로 클릭했을 때 상세페이지로 이동하게 되는 것이다. 해결방법 ⇒..

article thumbnail
[ JavaScript ] 프로그래머스 level1 문제 풀이 (9) - 햄버거 만들기, 신규 아이디 추천(2021 KAKAO BLIND RECRUITMENT)
CODING TEST/Programmers 2024. 1. 8. 23:54

햄버거 만들기 #133502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제는 풀지 못하고 힌트를 참고해서 해결하였다 🥲 다른 사람의 풀이를 본 결과 크게 1. 스택으로 해결 2. 스택 없이 해결 로 나누어지는 것 같았다. 스택으로 해결 (temp가 스택) function solution(ingredient) { let answer = 0; let temp = []; for (item of ingredient) { temp.push(item); if (temp.slice(-4).join("") === "1231") { answer++; temp...

article thumbnail
[ JavaScript ] 프로그래머스 level1 문제 풀이 (8) - 크레인 인형뽑기 게임, 키패드 누르기
CODING TEST/Programmers 2024. 1. 4. 16:31

2019 카카오 개발자 겨울 인턴십 | 크레인 인형뽑기 게임 #64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 더보기 문제 설명 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형..

article thumbnail
[ 모던 자바스크립트 Deep Dive ] 15장 let, const 키워드와 블록 레벨 스코프

모던 자바스크립트 Deep Dive 를 읽고 작성한 학습용 게시글입니다. 모던 자바스크립트 Deep Dive: 자바스크립트의 기본 개념과 동작 원리 269개의 그림과 원리를 파헤치는 설명으로 ‘자바스크립트의 기본 개념과 동작 원리’를 이해하자! 웹페이지의 단순한 보조 기능을 처리하기 위한 제한적인 용도로 태어난 자바스크립트는 과도 wikibook.co.kr var 키워드로 선언한 변수의 문제점 ES5까지 변수를 선언하는 유일한 방법은 var 키워드를 사용하는 것이었다. var 키워드로 선언된 변수는 다음과 같은 특징이 있다. 이는 다른 언어와는 구별되는 독특한 특징으로서, 주의를 기울이지 않으면 문제를 일으킬 수 있다. 변수 중복 선언 허용 var 키워드로 선언한 변수는 중복 선언이 가능하다. // 예제..