일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 디자인
- 알고리즘
- 비트연산자
- 제로베이스 프론트엔드 스쿨
- wai-aria
- react
- TypeScript
- 웹접근성
- react-query
- 정규표현식
- programmers
- JavaScript
- 카드뉴스
- html&css
- 프로그래머스
- leetcode
- Today
- Total
목록분류 전체보기 (53)
記錄

00 정규표현식이란 정규표현식(regular expression, regex), 또는 정규식은 문자열에서 특정 문자 조합을 찾기 위한 패턴이다. 프로그래밍 전반에서 문자열의 검색과 치환을 위해 사용되며, JavaScript에서는 정규 표현식도 객체로서 RegExp객체와 문자열 메서드를 조합해 정규표현식을 사용할 수 있다. 정규표현식은 다음과 같은 상황에서 유용하게 사용된다. 각각 다른 포맷으로 저장된 엄청나게 많은 전화번호 데이터를 추출해야 할 때 사용자가 입력한 이메일, 휴대폰 번호, IP 주소 등이 올바른지 검증하고 싶을 때 코드에서 특정 변수의 이름을 치환하고 싶지만, 해당 변수의 이름을 포함하고 있는 함수는 제외하고 싶을 때 특정 조건과 위치에 따라서 문자열에 포함된 공백이나 특수문자를 제거하고 ..

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/70129 난이도: Lv.1 문제 설명 0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다. x의 모든 0을 제거합니다. x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다. 예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다. 0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하도록 soluti..

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/72410 난이도: Lv.1 문제 설명 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음..

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/133502 난이도: Lv.1 문제 설명 햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장을 하게 됩니다. 상수가 일하는 가게는 정해진 순서(아래서부터, 빵 – 야채 – 고기 - 빵)로 쌓인 햄버거만 포장을 합니다. 상수는 손이 굉장히 빠르기 때문에 상수가 포장하는 동안 속 재료가 추가적으로 들어오는 일은 없으며, 재료의 높이는 무시하여 재료가 높이 쌓여서 일이 힘들어지는 경우는 없습니다. 예..

이 글은 슬라이딩 윈도우와 투 포인터 알고리즘을 정리하는 글입니다. 비슷한 성향의 알고리즘이라 한 포스팅에 같이 정리해봅니다. 01 Sliding Window 창문이 옮겨간다는 이름의 이 알고리즘 풀이 방식은 고정된 범위(창문)가 자동으로 옮겨가면서(=구간의 길이가 같음) 창문 내에 있는 데이터를 이용해 조건에 해당하는 답을 반환하게 된다. 시간복잡도가 O(n)이다. 교집합의 정보를 공유하고, 차이가 나는 양쪽 끝 원소만 갱신하는 방법으로 매번 처리되는 중복된 요소를 버리지 않고 재사용함으로써 낭비되는 계산을 하지 않음으로써 효율적으로 처리한다. 배열이나 리스트의 요소들의 일정 범위 값을 비교할 때 사용되며, 배열의 정렬 여부에 관계 없이 활용 가능하다. 예시문제 문제 원문 및 설명 링크 크기가 num인..

문제 링크: https://leetcode.com/problems/longest-substring-without-repeating-characters/ 난이도: Medium Given a string s, find the length of the longest substring without repeating characters. 주어진 문자열 s에서 반복되는 문자가 없는 가장 긴 문자열의 길이를 구하시오. Example 1: Input: s = "abcabcbb" Output: 3 Explanation: The answer is "abc", with the length of 3. Example 2: Input: s = "bbbbb" Output: 1 Explanation: The answer is "b..

1. JavaScript 기본문법 2. JavaScript 함수/조건문/반복문 09 함수 Function 다수의 명령문을 코드 블록으로 감싸고 하나의 실행 단위로 만든 코드의 집합으로, 유사한 동작을 하는 코드를 하나로 묶어 범용성을 확대시킨(=모듈화) 블록 코드이다. 함수는 가급적 한 가지 일만 수행해야 하며, 매개 변수는 최대 3개 이내로 작성하는 것을 권장한다. 09-1. 함수 선언 (function declaration) 함수 선언문 function showMessage() { alert( '안녕하세요!' ); } function name(parameter1, parameter2, ... parameterN) { // 함수 본문 return param1 + param2 ... } //함수 호출 s..

이 글은 유클리드 호제법에 대한 설명과 최대공약수와 최소공배수를 JavaScript로 구현하는 방식에 대해 정리하는 글입니다. 01 유클리드 호제법 유클리드 호제법(Euclidean algorithm)이란, 2개의 자연수의 최대공약수를 구하는 알고리즘 중 하나이다. 호제법이란 말은 두 수가 서로(互) 상대방 수를 나누어(除)서 결국 원하는 수를 얻는 알고리즘을 나타낸다. 유클리드 호제법의 원리는 다음과 같다. 2개의 자연수(또는 정식) a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a> b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다. 최대공약수는 A,B 모두 나누어 떨어뜨리는 최대의 약수이므로, r=0 일 때 B의 값이 최대공약수이다. 이 성질에 따라, b를 r로 나눈 나머지 ..