일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- 최소공배수
- 백트래킹
- python
- 한글이 두 번 입력됨
- __proto__ 접근자 프로퍼티
- 9610
- 알고리즘
- 파이썬
- float: right
- 낙관적 업데이트
- 백준
- Tanstack Query
- 한글 입력 시 이벤트 두 번 발생
- 시간
- javascript
- 동적 계획법
- 함수 객체의 프로퍼티
- 동기
- dp
- 유클리드 호제법
- 자바스크립트
- C++
- 비동기
- prototype 프로퍼티
- 백준 9610번 파이썬 문제 풀이
- 메타버스
- css
- 프로그래밍
- backtracking
- 2522
- Today
- Total
목록분류 전체보기 (105)
염딩코
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/btSMgC/btsdjnuZ6RE/pt8zK9R3tgq3r1Lewzgng0/img.png)
문제 칸토어 집합은 0과 1사이의 실수로 이루어진 집합으로, 구간 [0, 1]에서 시작해서 각 구간을 3등분하여 가운데 구간을 반복적으로 제외하는 방식으로 만든다. 전체 집합이 유한이라고 가정하고, 다음과 같은 과정을 통해서 칸토어 집합의 근사를 만들어보자. 1. -가 3N개 있는 문자열에서 시작한다. 2. 문자열을 3등분 한 뒤, 가운데 문자열을 공백으로 바꾼다. 이렇게 하면, 선(문자열) 2개가 남는다. 3. 이제 각 선(문자열)을 3등분 하고, 가운데 문자열을 공백으로 바꾼다. 이 과정은 모든 선의 길이가 1일때 까지 계속 한다. 예를 들어, N=3인 경우, 길이가 27인 문자열로 시작한다. --------------------------- 여기서 가운데 문자열을 공백으로 바꾼다. ---------..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/8IZkm/btsddUs25OO/m0Jzq54jS5Dxf4bL4dnRJ1/img.png)
문제 오늘도 서준이는 병합 정렬 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. N개의 서로 다른 양의 정수가 저장된 배열 A가 있다. 병합 정렬로 배열 A를 오름차순 정렬할 경우 배열 A에 K 번째 저장되는 수를 구해서 우리 서준이를 도와주자. 크기가 N인 배열에 대한 병합 정렬 의사 코드는 다음과 같다. merge_sort(A[p..r]) { # A[p..r]을 오름차순 정렬한다. if (p < r) then { q
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/zOgqc/btsc0swWkGt/cOSA1UrE4Fbukj4F5RnTBk/img.png)
문제 정휘는 후배들이 재귀 함수를 잘 다루는 재귀의 귀재인지 알아보기 위해 재귀 함수와 관련된 문제를 출제하기로 했다. 팰린드롬이란, 앞에서부터 읽었을 때와 뒤에서부터 읽었을 때가 같은 문자열을 말한다. 팰린드롬의 예시로 AAA, ABBA, ABABA 등이 있고, 팰린드롬이 아닌 문자열의 예시로 ABCA, PALINDROME 등이 있다. 어떤 문자열이 팰린드롬인지 판별하는 문제는 재귀 함수를 이용해 쉽게 해결할 수 있다. 아래 코드의 isPalindrome 함수는 주어진 문자열이 팰린드롬이면 1, 팰린드롬이 아니면 0을 반환하는 함수다. #include #include int recursion(const char *s, int l, int r){ if(l >= r) return 1; else if(s[l..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/HgjnT/btscZrrLF8s/aPsaJDZJnxr3zuKKwhipR1/img.png)
문제 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N(0 ≤ N ≤ 20)이 주어진다. 출력 첫째 줄에 N!을 출력한다. 풀이 이 문제는 재귀에 대한 기본적인 내용을 담고 있다. 다만 주의할 점은 입력의 범위를 확인하고 int로 표현할 수 있는 수의 범위를 넘어가는 것을 알아야 한다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dKTlkp/btr91RGzalf/vDWwStok4erxfgbZVFBQCk/img.jpg)
Database Organized collection of inter-related data that models some aspect of the real-world. Databases are the core component of most computer applications. Flat File Strawman (strawman은 잘 동작하지 않을 것을 의미함.) Store our database as comma-separated value(CSV) files that we manage ourselves in our application code. Use a separate file per entity. The application must parse the files each time they w..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kUMhE/btr8NdkLLHM/p8yaykvwKk2yl8STtmqLu1/img.png)
☺️ vw와 vh란? CSS 작업을 할 때, 주로 사용하는 단위는 픽셀(px)이다. 하지만, px는 고정 단위이고 이를 대신해 유동 단위인 %를 사용하면 조금 더 유연한 코드를 만들 수 있다. 예를 들어, width: 50%로 지정해두면 항상 부모의 절반 사이즈를 가지니까 이것 역시 좋은 반응형 CSS이다. %말고도 유연한 값을 가지는 단위들 중 vw, vh를 알아보자. v, 뷰포트를 기준으로 하다. 이들의 풀네임은 Viewport Width / Viewport Height 이다. 이름에서 유추할 수 있듯이 뷰포트를 기준으로 한 단위이다. 뷰포트는 ‘보여지는 영역’이라고 했으니, 결국 보여지는 영역에서 얼마만큼 차지할 것인지를 지정하는 단위라 할 수 있다. 1vw = 뷰포트 너비의 1%로 계산된다. 그렇..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cxlrg5/btr6TmXE0H7/zET2dS8LyKs9dujaeXawe0/img.jpg)
Merge sort Implementation Divide 하나의 배열을 반으로 나눠 2개의 배열로 만든다. Conquer Subarray가 충분히 작아졌다면, 정렬시킨다. Subarray가 충분히 작지 않다면, Recursion Merge 정렬된 subarray를 합쳐서 하나의 배열로 만든다. Pseudo code // 위의 그림과 함께 보면 이해하기 쉽다. public static void mergeSort(int n, keytype[] S) { if(n > 1) { // 1개일 때는 할 것이 없음. const int h = floor(n/2), m = n-h; // 반으로 나눔. keytype[] U = new keytype[1...h]; keytype[] V = new keytype[1...m];..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/o7TBV/btr2toroyBE/1UzIcoQ4rdEuZyQpWXUjL1/img.gif)
const name = person && person.name; JavaScript에서 optional chaining은 프로퍼티나 메소드를 참조할 때 발생할 수 있는 에러를 방지하기 위한 문법입니다. 이전에는 다음과 같은 방식으로 프로퍼티를 참조했습니다. const name = person && person.name; 위와 같은 코드는 person이 null이나 undefined일 경우, name 변수는 undefined가 되어 프로그램이 중단될 수 있습니다. 이 문제를 해결하기 위해 optional chaining 연산자(?.)가 등장하였습니다. optional chaining을 사용하면 다음과 같은 코드로 에러를 방지할 수 있습니다. const name = person?.name; 위 코드에서 p..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bxjEwG/btr1WlhmyWT/CR9sRqfFpAhgTXa8p5NG1K/img.png)
useRef란 뭘까요? React는 사용자 인터페이스를 만드는 데 필요한 많은 기능을 제공합니다. 그 중 하나가 useRef입니다. useRef는 React Hook 함수 중 하나로, DOM 노드나 다른 React 요소에 대한 참조를 만들기 위해 사용됩니다. React를 처음 시작하는 사람들은 이 개념이 어려울 수 있지만, 간단한 예제를 통해 이해해 보도록 하겠습니다. 예제를 위해, 다음과 같은 코드를 작성합니다. import React, { useRef } from 'react'; function TextInput() { const inputRef = useRef(null); const handleClick = () => { inputRef.current.focus(); }; return ( Focus..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bozoNC/btr1MjDfPIS/eL5hwNmYKMgDr0dK5Hhhmk/img.png)
동기와 비동기는 프로그래밍에서 중요한 개념 중 하나입니다. 이 둘은 서로 다른 실행 방식을 갖고 있고, 이를 이해하는 것은 프로그래밍에서 매우 중요합니다. 동기적 실행은 각 작업이 순서대로 실행되는 것을 의미합니다. 이것은 일련의 작업 중 하나가 완료될 때까지 다음 작업이 시작되지 않음을 의미합니다. 즉, 코드의 실행이 차단될 수 있습니다. 이는 작업이 오래 걸리거나 중단되는 경우에 문제가 될 수 있습니다. 비동기적 실행은 작업이 순차적으로 실행되지 않는 것을 의미합니다. 대신, 작업은 병렬로 실행됩니다. 비동기 코드는 대개 콜백 함수나 프로미스를 사용하여 처리됩니다. 이러한 방식으로 비동기적 실행은 코드의 차단을 방지할 수 있으므로 응용 프로그램의 반응성을 향상하고, 더 많은 작업을 더 빠르게 처리할 ..