분류 전체보기
-
🍇문제 🍇풀이방법삼각형 모양의 숫자 배열에서, 꼭대기에서부터 시작하여 아래로 내려오면서 숫자를 더해 나갈 때, 가장 큰 합을 찾는 문제이다. 각 위치에서는 그 위치까지 도달할 수 있는 두 가지 경로가 존재하며, 이전 단계에서 선택된 최적 경로의 값을 고려해야 한다. 이 문제는 Dynamic Programming(동적 계획법)을 사용하여 해결할 수 있다. 각 위치에서 최적의 경로를 선택하여 문제를 해결해보자. 1. DP 테이블 초기화dp = [] for lst in triangle: dp.append([0] * len(lst)) dp 리스트는 삼각형 모양의 구조를 가지며, 각 위치에서의 최댓값을 저장하는 데 사용된다.dp[i][j]는 삼각형의 i번째 행, j번째 열에 위치한 값까지 도달하는 최댓값을 ..
[프로그래머스 Lv.3] 정수 삼각형(DP)🍇문제 🍇풀이방법삼각형 모양의 숫자 배열에서, 꼭대기에서부터 시작하여 아래로 내려오면서 숫자를 더해 나갈 때, 가장 큰 합을 찾는 문제이다. 각 위치에서는 그 위치까지 도달할 수 있는 두 가지 경로가 존재하며, 이전 단계에서 선택된 최적 경로의 값을 고려해야 한다. 이 문제는 Dynamic Programming(동적 계획법)을 사용하여 해결할 수 있다. 각 위치에서 최적의 경로를 선택하여 문제를 해결해보자. 1. DP 테이블 초기화dp = [] for lst in triangle: dp.append([0] * len(lst)) dp 리스트는 삼각형 모양의 구조를 가지며, 각 위치에서의 최댓값을 저장하는 데 사용된다.dp[i][j]는 삼각형의 i번째 행, j번째 열에 위치한 값까지 도달하는 최댓값을 ..
2024.08.23 -
프로젝트를 진행하면서 데이터가 많아지면 페이지네이션(Pagination)이 필요하게 된다.라이브러리를 사용할 수도 있지만, 공부의 취지로 직접 구현해보기로 했다! 이번 포스팅에서는 React로 Pagination을 구현한 과정을 정리하려고 한다. 🌻 Pagination의 동작 구조Pagination의 전반적인 동작 구조는 네이버 블로그의 Pagination을 참고했다.1. 페이지 번호를 클릭하면 페이지가 변경된다. (URL의 쿼리 스트링 값이 업데이트된다.)2. 현재 페이지에는 active 디자인을 적용한다.3. 이전 및 다음 버튼은, 해당 방향으로 이동 가능한 페이지가 있을 때만 표시된다.4. 이전 버튼을 클릭하면, 이전 페이지 그룹의 마지막 페이지로 이동한다.5. 다음 버튼을 클릭하면, 다음 페이지..
React로 Pagination 구현하기프로젝트를 진행하면서 데이터가 많아지면 페이지네이션(Pagination)이 필요하게 된다.라이브러리를 사용할 수도 있지만, 공부의 취지로 직접 구현해보기로 했다! 이번 포스팅에서는 React로 Pagination을 구현한 과정을 정리하려고 한다. 🌻 Pagination의 동작 구조Pagination의 전반적인 동작 구조는 네이버 블로그의 Pagination을 참고했다.1. 페이지 번호를 클릭하면 페이지가 변경된다. (URL의 쿼리 스트링 값이 업데이트된다.)2. 현재 페이지에는 active 디자인을 적용한다.3. 이전 및 다음 버튼은, 해당 방향으로 이동 가능한 페이지가 있을 때만 표시된다.4. 이전 버튼을 클릭하면, 이전 페이지 그룹의 마지막 페이지로 이동한다.5. 다음 버튼을 클릭하면, 다음 페이지..
2024.08.20 -
1. 일급 객체다음과 같은 조건을 만족하는 객체를 일급 객체라 한다.1. 무명의 리터럴로 생성할 수 있다. 즉, 런타임에 생성이 가능하다.2.변수나 자료구조(객체, 배열 등)에 저장할 수 있다.3. 함수의 매개변수에 전달할 수 있다.4. 함수의 반환값으로 사용할 수 있다. 자바스크립트의 함수는 위의 조건을 모두 만족하는 일급 객체다! // 1. 무명의 리터럴로 생성할 수 있다.// 2. 변수에 저장할 수 있다.// 런타임에 함수 리터럴이 평가되어 함수 객체가 생성되고 변수에 할당된다.const increase = function (num) { return ++num;};const decrease = function (num) { return --num;};// 2. 함수는 객체에 저장할 수 있다.co..
[Javascript] 함수와 일급 객체1. 일급 객체다음과 같은 조건을 만족하는 객체를 일급 객체라 한다.1. 무명의 리터럴로 생성할 수 있다. 즉, 런타임에 생성이 가능하다.2.변수나 자료구조(객체, 배열 등)에 저장할 수 있다.3. 함수의 매개변수에 전달할 수 있다.4. 함수의 반환값으로 사용할 수 있다. 자바스크립트의 함수는 위의 조건을 모두 만족하는 일급 객체다! // 1. 무명의 리터럴로 생성할 수 있다.// 2. 변수에 저장할 수 있다.// 런타임에 함수 리터럴이 평가되어 함수 객체가 생성되고 변수에 할당된다.const increase = function (num) { return ++num;};const decrease = function (num) { return --num;};// 2. 함수는 객체에 저장할 수 있다.co..
2024.08.14 -
✏️문제 ✏️풀이전의 결과를 다음 결과에 이용하게 되는 점화식을 활용한 DP 문제이다. 즉, 메모제이션 방법으로 중복해 계산되는 값을 저장해 계산의 효율을 높일 수 있다. DP로 푸는건 알겠는데, 주어진 N -> 1 로 접근했더니 머리가 아팠다...결국 풀지 못하고 풀이를 참고했고, 상향식(bottom-up) 으로 푸는 것을 알게되었다. X = 10인 경우, 10 -> 9 -> 3 -> 1 과정을 거쳐 1이 되게 되는데9의 경우에는 또, 9 -> 3 -> 1의 과정을 거치며3의 경우에는 3 -> 1의 과정을 거친다.=> 즉, 10을 구할 때는 9의 결과를, 9를 구할 때는 3의 결과를 이용한다.앞에서 구한 결과값을 저장하였다가 후에 사용하는 것이다! 일단, 2와 3으로 나누어 떨어지지 않는 경우는 무조..
[백쥰 1463] 1로 만들기 (DP) - Python✏️문제 ✏️풀이전의 결과를 다음 결과에 이용하게 되는 점화식을 활용한 DP 문제이다. 즉, 메모제이션 방법으로 중복해 계산되는 값을 저장해 계산의 효율을 높일 수 있다. DP로 푸는건 알겠는데, 주어진 N -> 1 로 접근했더니 머리가 아팠다...결국 풀지 못하고 풀이를 참고했고, 상향식(bottom-up) 으로 푸는 것을 알게되었다. X = 10인 경우, 10 -> 9 -> 3 -> 1 과정을 거쳐 1이 되게 되는데9의 경우에는 또, 9 -> 3 -> 1의 과정을 거치며3의 경우에는 3 -> 1의 과정을 거친다.=> 즉, 10을 구할 때는 9의 결과를, 9를 구할 때는 3의 결과를 이용한다.앞에서 구한 결과값을 저장하였다가 후에 사용하는 것이다! 일단, 2와 3으로 나누어 떨어지지 않는 경우는 무조..
2024.08.14 -
객체를 생성하는 방식에는 여러가지가 있지만 크게 두 가지가 있다. 1. 객체 리터럴에 의한 객체 생성2. 생성자 함수를 사용한 객체 생성 이번 포스팅에서는 생성자 함수를 사용하여 객체를 생성하는 방식을 살펴볼 것이다.또한, 위에서 언급한 두 방식의 장단점을 살펴볼 것이다! 🍏 Object 생성자 함수new 연산자와 함께 Object 생성자 함수를 호출하면 빈 객체를 생성하여 반환한다. 빈 객체를 생성한 이후 프로퍼티 또는 메서드를 추가하여 객체를 완성할 수 있다. // 빈 객체의 생성const person = new Object();// 프로퍼티 추가person.name = 'Sumin';person.sayHello = function () { console.log('Hi! My name is..
[Javascript] 생성자 함수에 의한 객체 생성객체를 생성하는 방식에는 여러가지가 있지만 크게 두 가지가 있다. 1. 객체 리터럴에 의한 객체 생성2. 생성자 함수를 사용한 객체 생성 이번 포스팅에서는 생성자 함수를 사용하여 객체를 생성하는 방식을 살펴볼 것이다.또한, 위에서 언급한 두 방식의 장단점을 살펴볼 것이다! 🍏 Object 생성자 함수new 연산자와 함께 Object 생성자 함수를 호출하면 빈 객체를 생성하여 반환한다. 빈 객체를 생성한 이후 프로퍼티 또는 메서드를 추가하여 객체를 완성할 수 있다. // 빈 객체의 생성const person = new Object();// 프로퍼티 추가person.name = 'Sumin';person.sayHello = function () { console.log('Hi! My name is..
2024.08.10 -
🍉 1. 내부 슬롯과 내부 매서드프로퍼티 어트리뷰트를 이해하기 위한 개념내부 슬롯과 내부 메서드는 자바스크립트 엔진의 구현 알고리즘을 설명하기 위해 ECMAScript 사양에서 사용하는 의사 프로퍼티(pseudo property)와 의사 메서드(pseudo method)다.자바스크립트 엔진에서 실제로 동작하지만, 외부로 공개된 객체의 프로퍼티는 아니다. -> 직접 접근할 수 없음 🍉 2. 프로퍼티 어트리뷰트와 프로퍼티 디스크립터 객체자바스크립트 엔진은 프로퍼티를 생성할 때, 프로퍼티의 상태를 나타내는 프로퍼티 어트리뷰트를 기본값으로 자동 정의한다. 프로퍼티 상태: 프로퍼티의 값(value), 값의 갱신 가능 여부(writable), 열거 가능 여부(enumerable), 재정의 가능 여부(config..
[Javascript] 프로퍼티 어트리뷰트🍉 1. 내부 슬롯과 내부 매서드프로퍼티 어트리뷰트를 이해하기 위한 개념내부 슬롯과 내부 메서드는 자바스크립트 엔진의 구현 알고리즘을 설명하기 위해 ECMAScript 사양에서 사용하는 의사 프로퍼티(pseudo property)와 의사 메서드(pseudo method)다.자바스크립트 엔진에서 실제로 동작하지만, 외부로 공개된 객체의 프로퍼티는 아니다. -> 직접 접근할 수 없음 🍉 2. 프로퍼티 어트리뷰트와 프로퍼티 디스크립터 객체자바스크립트 엔진은 프로퍼티를 생성할 때, 프로퍼티의 상태를 나타내는 프로퍼티 어트리뷰트를 기본값으로 자동 정의한다. 프로퍼티 상태: 프로퍼티의 값(value), 값의 갱신 가능 여부(writable), 열거 가능 여부(enumerable), 재정의 가능 여부(config..
2024.08.09 -
Kakao Maps API를 사용하여 사용자의 현재 위치를 지도에 표시하는 방법에 대해 정리해보려고 한다. Geolocation API를 통해 현재 위치를 가져오고, 해당 위치를 Kakao Maps에 표시하는 방식으로 구현했는데, 구체적인 과정을 단계별로 설명해보자! 그 전에, 현재 위치를 Geolocation API를 사용해서 가져오는 방식이 가장 보편적인 것을 알았다.Geolocation API란?Geolocation API는 웹 브라우저에서 사용자의 현재 위치 정보를 얻을 수 있게 해주는 API이다.이 API를 사용하면 사용자의 허락을 받아 현재 위치를 가져올 수 있다. 아래와 같이 호출하여 현재 위치를 가져올 수 있다.navigator.geolocation.getCurrentPosition(suc..
[REACT] KAKAO MAPS API 사용해서 지도 그리기, 현재 위치 표시하기Kakao Maps API를 사용하여 사용자의 현재 위치를 지도에 표시하는 방법에 대해 정리해보려고 한다. Geolocation API를 통해 현재 위치를 가져오고, 해당 위치를 Kakao Maps에 표시하는 방식으로 구현했는데, 구체적인 과정을 단계별로 설명해보자! 그 전에, 현재 위치를 Geolocation API를 사용해서 가져오는 방식이 가장 보편적인 것을 알았다.Geolocation API란?Geolocation API는 웹 브라우저에서 사용자의 현재 위치 정보를 얻을 수 있게 해주는 API이다.이 API를 사용하면 사용자의 허락을 받아 현재 위치를 가져올 수 있다. 아래와 같이 호출하여 현재 위치를 가져올 수 있다.navigator.geolocation.getCurrentPosition(suc..
2024.08.01 -
🥭 그리디 알고리즘그리디(Greedy) 알고리즘은 탐욕법이라고도 하며, 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미한다. 그리디 알고리즘을 이용하면 매 순간 가장 좋아 보이는 것만 선택하며, 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다. 즉, 현재의 최적 선택을 번복하지 않는다. (선택한 것을 버리고 다른 것을 취하지 않는다)=> 이는 다이나믹 프로그래밍과 가장 큰 차이점으로, 모든 단계를 끝내고 이전으로 돌아가 다시 생각하는 과정이 없다는 의미일반적인 그리디 알고리즘은 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구한다고 함! 🥭 그리디 알고리즘 코딩테스트 유형1. 그리디 알고리즘 문제는 문제 유형을 미리 외우지 않아도 해결할 가능성이 높다고 한다.이는 그..
[Greedy] 그리디 알고리즘🥭 그리디 알고리즘그리디(Greedy) 알고리즘은 탐욕법이라고도 하며, 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미한다. 그리디 알고리즘을 이용하면 매 순간 가장 좋아 보이는 것만 선택하며, 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다. 즉, 현재의 최적 선택을 번복하지 않는다. (선택한 것을 버리고 다른 것을 취하지 않는다)=> 이는 다이나믹 프로그래밍과 가장 큰 차이점으로, 모든 단계를 끝내고 이전으로 돌아가 다시 생각하는 과정이 없다는 의미일반적인 그리디 알고리즘은 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구한다고 함! 🥭 그리디 알고리즘 코딩테스트 유형1. 그리디 알고리즘 문제는 문제 유형을 미리 외우지 않아도 해결할 가능성이 높다고 한다.이는 그..
2024.07.29