본문 바로가기
반응형

개발 및 알고리즘/알고리즘18

[JS/typescript] Null 병합 연산자 ?? (물음표 2개) Javascript 또는 Typescript에서 어떤 변수를 사용할 때 조건에 따라 사용하고 싶으면 if문을 사용한다.if (var1 == true) { let var2 = 0;} else { let var2 = 1;}다만 if문 안에서 변수를 선언하는 경우 블록 밖에서는 해당 변수를 사용할 수 없기 때문에 필요한 경우 이런 식으로 응용한다.let var2 = 1;if (var1 == true) { var2 = 0;}조금 더 간단하게 사용하려면 삼항 연산자를 사용하면 된다.let var2 = var1 == true ? 0 : 1;조건 ? 조건이 참인 경우 값 : 조건이 거짓인 경우 값 그러나 조건과 사용하려는 값이 같아지는 경우엔 똑같은 부분을 쓰느라 코드가 중복된다.let va2 = var1... 2024. 7. 23.
[React Native] 리액트 네이티브에서 스플래시 스크린에 애니메이션 구현하기 (lottie + react-native-bootsplash) 앱의 첫인상이 앱 아이콘이라면 스플래시 스크린은 앱을 만나러 가는 길이라고 정의할 수 있다. (중요하단 뜻이다.)이번에는 react-native-bootsplash 모듈을 통해서 스플래시스크린을 지정하는 방법을 알아보려 한다.  우선 스플래시스크린이 무엇인가? 앱에 처음 접속했을 때 뜨는 로딩화면으로서 프론트단에서의 앱 로딩 - 백엔드에서 정보를 가져오는 등 복잡한 구동이 진행되고 있을 때 사용자에게서 그것을 숨기고 덜 지루한 느낌(ux)을 주기 위해 구현한다. 로고만 있는 정적인 화면부터 누구나 아는 넷플릭스 스크린같은 동적인 화면도 많다.다만 아무리 검색해봐도 정적인 화면이 1초도 안 나오고 애니메이션부터 시작하는 스플래시 스크린을 구현하는 방법을 찾지는 못했다.그럼 어떻게 할까? 애니메이션의 배경색.. 2024. 7. 12.
[React Native] 리액트 네이티브에서 기기 설정 언어 확인하기 (react-native-localize) 다양한 국가에서의 출시를 노리고 있는 어플리케이션이라면 초기 언어 설정을 위해 사용자 기기의 언어 설정을 받아올 필요가 있다.react-native-localize 모듈을 활용할 것이다. npm i react-native-localizecd iOSpod install   구현은 아주 간단하다. 빌드 세팅도 필요 없다.import {getLocales} from “react-native-localize”console.log(getLocales());  사용자가 기기에 다운받아놓은 언어 목록이 다음과 같이 출력된다.type getLocales = () => Array;// output example[ { countryCode: "GB", languageTag: "en-GB", languageCode: "e.. 2024. 7. 11.
[Programmers] 두 개 뽑아서 더하기* Description 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. 입출력 예 numbers result [2, 1, 3, 4, 1] [2, 3, 4, 5, 6, 7] [5, 0, 2, 7] [2, 5, 7, 9, 12] 권장 시간 복잡도 $O(N^2log(N^2))$ 풀이 def solution(numbers): setA = set() for i in range(len(numbers)): for j in range(i+1.. 2024. 4. 1.
배열 배열에서 데이터에 접근하기 위한 시간 복잡도 : O(1) 맨 뒤에 삽입할 경우 시간 복잡도: O(1) 맨 앞에 삽입할 경우 시간 복잡도: O(N) 배열을 선택할 때 고려할 점 1. 할당할 수 있는 메모리 크기를 확인해야 함 2. 중간에 데이터 삽입이 많은지 확인해야 함 list.append(a) : 맨 끝에 데이터 추가 list = list + [4, 5] : 맨 끝에 배열 추가 list.insert(index, value): 특정 index에 값 추가 list.pop(index) : 특정 index의 값 삭제, 반환 list.remove(value) : 배열에서 맨 앞에 있는 특정 값 삭제 list.index(value) : 특정 데이터가 처음 등장한 index 반환, 없으면 -1 2024. 3. 20.
코딩 테스트 문제 풀이 전략 1. 문제를 한 번에 분석하지 말고 동작 단위로 쪼개서 분석하여 한 번에 생각해야 하는 양을 줄여라. 2. 제약 사항을 정리해두고 테스트 케이스를 추가하라. 3. 입력값을 분석하라. 4. 핵심 키워드를 파악하라. 키워드 상황 스택 - 쌍이 맞는지 - 최근 - 무언가를 저장하고 반대로 처리해야 할 때 - 데이터의 조합이 균형을 이뤄야할 때 - 알고리즘이 재귀 특성을 가질 때 - 최근 상태 추적 큐 - 순서대로 - ~대로 동작하는 경우 - 스케줄링 - 최소 시간 - 특정 조건에 따라 시뮬레이션할 때 - 시작 지점부터 목표 지점까지 최단 거리 깊이 우선 탐색 - 모든 경로 - 메모리 사용량이 제한적일 때의 탐색 - 백트래킹 문제를 풀 때 너비 우선 탐색 - 최적 - 레벨 순회 - 최소 단계 - 네트워크 전파 .. 2024. 3. 17.
반응형