목록분류 전체보기 (38)
은학의 코딩 일기장
단축평가논리(short-circuit evaluation)는 논리 연산을 수행할 때, 피연산자들을 왼쪽에서 오른쪽으로 순차적으로 평가하다가 전체 결과가 결정되는 시점에서 더 이상 평가하지 않고 결과를 반환하는 방법입니다. 이 방법은 피연산자가 많은 복잡한 논리식을 다룰 때, 연산 속도를 향상시키는 효과가 있습니다. true && true // true true && false // false true || false // true false || true // true 연산자를 배울때 이런 표를 많이 봐왔을텐데, 이걸 코드에 적용시키면 훨씬 코드를 단축시킬 수 있습니다. 논리 연산자를 사용할 때 무조건 true 혹은 false를 사용해야 되는 것은 아니며, 해당 값이 Truthy 하냐 Falsy 하냐에 ..
비지니스로직 프론트엔드 비지니스 로직은 프론트엔드 개발자가 구현하는 애플리케이션의 핵심 비즈니스 로직입니다. 이것은 애플리케이션의 사용자 인터페이스와 관련된 로직을 포함합니다. 프론트엔드 비즈니스 로직은 일반적으로 사용자 입력을 처리하고 유효성 검사를 수행하며 데이터를 검색하고 저장하는 등의 작업을 수행합니다. 예를 들어, 사용자가 폼을 작성하고 제출하면 프론트엔드 비즈니스 로직은 해당 폼의 데이터를 검증하고 서버에 전송하는 등의 작업을 수행합니다. 뷰 반면에 뷰는 프론트엔드에서 사용자에게 보여지는 UI를 구성하는 요소입니다. 뷰는 일반적으로 HTML, CSS, JavaScript와 같은 프론트엔드 기술을 사용하여 개발됩니다. 뷰는 사용자가 인터랙션 할 수 있는 요소를 포함하여 애플리케이션의 모든 UI를..
Python 에서는 strip()을 사용하여 문자열엑서 특정 문자를 제거할 수 있습니다. Python의 String은 다음 함수를 제공합니다. strip([chars]) : 인자로 전달된 문자를 String의 왼쪽과 오른쪽에서 제거합니다. lstrip([chars]) : 인자로 전달된 문자를 String의 왼쪽에서 제거합니다. rstrip([chars]) : 인자로 전달된 문자를 String의 오른쪽에서 제거합니다. 인자를 전달하지 않을 수도 있으며, 인자를 전달하지 않으면 String에서 공백을 제거합니다 공백(white space) 제거 다음 코드는 strip()에 인자를 전달하지 않습니다. 인자를 전달하지 않으면 문자열에서 공백을 제거합니다. 결과 동일한 문자 제거 인자로 문자 1개를 전달하면 그 ..
문제 2차원 세계에 블록이 쌓여있다. 비가 오면 블록 사이에 빗물이 고인다. 비는 충분히 많이 온다. 고이는 빗물의 총량은 얼마일까? 입력 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치부터 차례대로 W개 주어진다. 따라서 블록 내부의 빈 공간이 생길 수 없다. 또 2차원 세계의 바닥은 항상 막혀있다고 가정하여도 좋다. 출력 2차원 세계에서는 한 칸의 용량은 1이다. 고이는 빗물의 총량을 출력하여라. 빗물이 전혀 고이지 않을 경우 0을 출력하여라. 풀이 시뮬레이션 문제이다. 특정위치를 기준으로 물이 고이는지를 판단하면 되기 때문에 for문을..
논리 && 연산자로 If를 인라인으로 표현하기 JavaScript에서 true && expression은 항상 expression으로 평가되고 false && expression은 항상 false로 평가됩니다. 따라서 && 뒤의 엘리먼트는 조건이 true일때 출력이 됩니다. 조건이 false라면 React는 무시하고 건너뜁니다. falsy 표현식을 반환하면 여전히 && 뒤에 있는 표현식은 건너뛰지만 falsy 표현식이 반환된다는 것에 주의해주세요. 아래 예시에서, 0이 render 메서드에서 반환됩니다. 조건부 연산자로 If-Else구문 인라인으로 표현하기 엘리먼트를 조건부로 렌더링하는 다른 방법은 조건부 연산자인 condition ? true: false 를 사용하는 것입니다. 아래의 예시에서는 짧은 ..
문제 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 X가 올바른 괄호열이면 ‘(X)’이나 ‘[X]’도 모두 올바른 괄호열이 된다. X와 Y 모두 올바른 괄호열이라면 이들을 결합한 XY도 올바른 괄호열이 된다. 예를 들어 ‘(()[[]])’나 ‘(())[][]’ 는 올바른 괄호열이지만 ‘([)]’ 나 ‘(()()[]’ 은 모두 올바른 괄호열이 아니다. 우리는 어떤 올바른 괄호열 X에 대하여 그 괄호열의 값(괄호값)을 아래와 같이 정의하고 값(X)로 표시한다. ‘()’ 인 괄호열의 값은 2이다. ‘[]’ 인 괄호열의 값은 3이다. ‘(X)’ 의 괄호값은 2×값..
정렬이란? - 자료들을 일정한 순서대로 나열한 것 -오름차순방식과 내림차순 방식이 있음 - 대표적인 예) 사전 정렬 알고리즘의 종류 -선택정렬 -삽입정렬 -퀵정렬 -병합정렬 -기수정렬 -히프정렬 -버블정렬 등등 정렬 알고리즘의 구현 1. 선택정렬 개념 : 여러 데이터중 가장 작은 값을 뽑는 동작을 반복하여 값을 정렬하는 방법 ex) 2. 삽입정렬 개념 : 기존의 데이터중에서 자신의 위치를 찾아 데이터를 삽입하여 정렬하는 방법 ex)
완전탐색 개념 완전탐색은 컴퓨터의 빠른 계산 성능을 활용하여 가능한 모든 경우의 수를 탐색하는 방법 '무식하게 푼다'의 의미인 Brute Force 라고도 부름 모든 경우의 수를 탐색하기에 정확성은 100%, 효율성은 꽝 따라서 주어진 N의 크기가 작을 때 사용하는 것이 좋음 '알고리즘' 이라기보다는 문제를 푸는 방법!! 완전탐색 풀이 방법 1. 해결하고자 하는 문제의 가능한 경우의 수를 대략적으로 계산 2. 가능한 모든 방법을 다 고려 3. 실제 답을 구할 수 있는지 적용 위의 2에서 말한 "모든 방법" 5가지 1. 단순 Brute Force 2. 순열 3. 재귀 호출 4. 비트마스크 5. BFS, DFS 단순 Brute Force 반복문, 조건문을 활용하여 단순하게 모든 방법을 찾는 방법 ex) 자물..