Web Development (57) 썸네일형 리스트형 [algorithm] Multiple Pointers Pattern (다중 포인터 패턴) Multiple Pointers Pattern (다중 포인터 패턴) 다중 포인터 패턴은 배열에서 여러 개의 포인터를 사용하여 포인터를 이동시키면서 문제를 해결하는 방법입니다. 이 패턴은 배열이나 문자열처럼 순서가 있는 데이터 집합에서 공간 복잡도를 낮추면서 효율적으로 문제를 해결할 수 있게 해줍니다. 특징 • 포인터 생성 및 이동: 인덱스나 위치에 대응하는 포인터를 생성하고, 조건에 따라 시작, 끝, 또는 중간을 향해 이동시킵니다. • 효율성: 최소한의 공간 복잡도로 문제를 해결할 수 있어 매우 효율적입니다. 예시 문제 예시 1: 두 요소의 합이 0이 되는 첫 번째 요소 쌍 찾기 문제정렬된 배열이 주어졌을 때, 두 요소의 합이 0이 되는 첫 번째 요소 쌍을 배열로 반환하는 함수를 작성하세요. 해당하는 .. [algorithm] Frequency Counter 패턴 (빈도수 카운터 패턴) Frequency Counter 패턴이란?Frequency Counter 패턴은 일반적인 알고리즘 패턴 중 하나로, 두 배열이나 문자열이 동일한 구성 요소를 가지고 있는지를 판단할 때 유용하다. 이 패턴은 객체나 집합(Set)을 사용하여 배열이나 문자열의 값을 수집하고, 그 값들의 빈도를 기록하여, 두 배열 또는 문자열이 동일한 구성 요소를 가지고 있는지 비교한다.이 패턴을 이용하면, 중첩 반복문이나 O(N^2) 시간 복잡도의 연산을 피할 수 있어 성능을 향상 시킬 수 있다. 이 패턴은 특히 배열이나 문자열이 같은 요소나 구조를 가지는지, 혹은 아나그램인지 등을 확인하는 문제에서 강력한 도구로 활용된다. Frequency Counter 패턴 예시 예시 1: 두 배열이 서로 제곱 관계인지 확인하는 함수 문.. [algorithm] 알고리즘을 잘 세우기 위한 전략 1. 문제를 이해하기 • 문제 예시: 0부터 주어진 숫자까지의 합을 구하는 함수를 구현하라. • 문제를 나만의 언어로 이해: 문제를 간단히 요약하고 필요 시 다시 설명합니다. • 입력값을 파악: 정수인지, 부동소수점인지, 입력 크기 제한이 있는지, 입력이 없거나 여러 개일 경우를 고려합니다. • 출력값을 파악: 정수, 소수 등 출력 형태를 결정하고, 부적절한 입력 시 어떻게 처리할지 정합니다. • 충분한 정보 여부: 필요한 정보가 모두 주어졌는지 확인하고, 예외 상황을 고려합니다. • 라벨링 계획: 변수와 함수 이름을 어떻게 명명할지 계획합니다 (예: add, sum 등). 2. 입력값과 출력값의 예시 찾기 • 예시 찾기 목적: 문제를 더 잘 이해하고 함수가 제대로 작동하는지 검증합니다. • 예시 단.. [algorithm] Big O 표기법 1. Big O 표기법이란? • 정의: Big O 표기법은 컴퓨터 과학에서 알고리즘의 실행 시간 복잡도 또는 최악의 경우 시나리오를 입력 크기에 따라 설명하는 수학적 표기법입니다. 2. Big O 표기법을 사용하는 이유 1. 알고리즘 효율성 비교: 동일한 문제를 해결하기 위해 여러 알고리즘의 효율성을 비교합니다. 2. 알고리즘 동작 예측: 입력 크기 증가에 따른 알고리즘의 성능 변화를 예측합니다. 3. 코드 최적화 지표: 성능을 최적화하는 데 참고할 수 있는 지표로 사용됩니다. 4. 자원 관리 지표: 메모리 사용, CPU 성능 등을 고려한 자원 관리에 유용합니다. 5. 효율적인 문제 접근법 제시: 효율적인 해결 방법을 찾는 데 도움을 줍니다. 3. 직접 시간을 측정해서 코드 성능 평가의 어려움 • .. [C] C 언어의 자료형 정의 bit : 컴퓨터가 처리할 수 있는 최소의 데이터 단위, 하나의 bit는 0 또는 1의 값을 가질 수 있다.byte : 하나의 비트만으로는 값을 표현하기가 어렵기 때문에 여러개의 비트를 모아 하나의 값을 표현한다. (8bit = 1byte) 자료형이란? 저장되는 데이터의 종류에 따른 형태.사용하는 이유? 저장되는 값의 종류와 범위에 따라 다르게 표현함으로써, 컴퓨터가 데이터의 형태에 대해 인식할 수 있도록 하기 위해서사용 방법?종류자료형메모리 크기값의 범위상세정수형 변수char8bit (1byte)-128 ~ 128최소 2byte이상인 정수형int32bit (4byte)-2,147,483,648 ~ 2,147,483,647최소 2byte 이상인 정수형unsigned int32bit (4byte)0 ~ 4.. [Web] 서버 컴포넌트 서버 컴포넌트란? 서버에서 렌더링 되는 컴포넌트이다.왜 사용하는가?번들 파일이 작아진다.(TTI 개선 효과) → 번들로 보낸 js파일이 렌더링하던 부분을 서버에서 대신 렌더링 해주기 때문이다.getServerSideProps, getStaticProps 가 필요없어진다. →RSC 내부에서 fetching이 가능하다.자동적으로 코드 스플리팅이 된다. → RSC가 실행될 때, RSC는 보류되기 떄문에 굳이 RCC를 미리 import 할 이유가 없다.Progressive Rendering → RSC의 결과값은 Stream형태로 전달된다. 클라이언트에서 먼저 수신된 부분부터 렌더링 해 줄 수 있다.컴포넌트 단위의 Refetching → SSR의 경우, 서버에서 html을 완성해서 보내주기 때문에, 수정사항이 있.. [Web] Light house를 이용한 페이지 최적화 Light house의 성능 지표 분석 결과First Contentful Paint (FCP): 1.9초 사용자가 처음으로 페이지의 콘텐츠를 볼 수 있는 시간. 50~89 사이이므로 평범Largest Contentful Paint (LCP): 17.6초 Lighthouse, Google의 웹 성능 지표에 따르면, LCP의 적정 시간은 2.5초 이하 : 우수, 2.5 ~ 4 : 개선 필요, 4 ~ : 성능 저조 이다. 2.5초 이하로 LCP를 떨어뜨려야 한다.LCP는 페이지의 주요 콘텐츠가 완전히 렌더링되는 시간이다. 여기서 말하는 주요 콘텐츠는 아래와 같다.- 이미지 요소(태그)- 비디오 포스터 이미지(태그의poster속성)- 백그라운드 이미지(CSSbackground-image속성)- 텍스트 블록 (,.. [algorithm] 하노이탑 문제 하노이탑 문제는 재귀 알고리즘을 설명하는 데 자주 사용된다.하노이탑 문제의 규칙한 번에 하나의 디스크만 옮길 수 있다.각 이동은 디스크를 한 막대에서 다른 막대로 옮겨야 한다.어떤 막대 위에도 더 작은 디스크 위에 더 큰 디스크를 놓을 수 없다재귀적 해결 방법A에서 C로 3개의 원반을 옮겨야 한다고 생각하면, 가장 큰 문제는 A의 3번째 원반을 C로 옮기는 것이다. 이를 위해서는 1, 2번 원반을 B로 옮겨야 한다. 그 이후 A를 C로 옮겼다고 가정하자. 이후 B의 원반들을 C로 옮기기 위한, 생각할 수 있는 가장 큰 문제는 B의 2번째 원반을 C로 옮기는 것이다. 이를 위해서는 B의 첫번째 원반을 A로 옮겨야 한다. 그 이후 B를 C위로 옮긴다고 가정하자. 이 상황에서는 A의 원반을 C로 옮기기만 하면.. 이전 1 2 3 4 5 6 7 8 다음