https://school.programmers.co.kr/learn/courses/30/lessons/340212 문제 설명 당신은 순서대로 n개의 퍼즐을 제한 시간 내에 풀어야 하는 퍼즐 게임을 하고 있습니다. 각 퍼즐은 난이도와 소요 시간이 정해져 있습니다. 당신의 숙련도에 따라 퍼즐을 풀 때 틀리는 횟수가 바뀌게 됩니다. 현재 퍼즐의 난이도를 diff, 현재 퍼즐의 소요 시간을 time_cur, 이전 퍼즐의 소요 시간을 time_prev, 당신의 숙련도를 level이라 하면, 게임은 다음과 같이 진행됩니다. diff ≤ level이면 퍼즐을 틀리지 않고 time_cur만큼의 시간을 사용하여 해결합니다. diff > level이면, 퍼즐을 총 diff - level번 틀립니다. 퍼즐을 틀릴 때마다,..
분류 전체보기
https://www.acmicpc.net/problem/9935문제상근이는 문자열에 폭발 문자열을 심어 놓았다. 폭발 문자열이 폭발하면 그 문자는 문자열에서 사라지며, 남은 문자열은 합쳐지게 된다.폭발은 다음과 같은 과정으로 진행된다.문자열이 폭발 문자열을 포함하고 있는 경우에, 모든 폭발 문자열이 폭발하게 된다. 남은 문자열을 순서대로 이어 붙여 새로운 문자열을 만든다.새로 생긴 문자열에 폭발 문자열이 포함되어 있을 수도 있다.폭발은 폭발 문자열이 문자열에 없을 때까지 계속된다.상근이는 모든 폭발이 끝난 후에 어떤 문자열이 남는지 구해보려고 한다. 남아있는 문자가 없는 경우가 있다. 이때는 "FRULA"를 출력한다.폭발 문자열은 같은 문자를 두 개 이상 포함하지 않는다.입력첫째 줄에 문자열이 주어진다..
오늘은 타입스크립트의 고급타입인 any와 unknown 에 대해 학습했다. 과거 타입이 불분명할 때 any타입을 주로 사용했었는데 사용하다보니 점점 any 사용이 빈번해지고 추후에 any타입을 모두 없애느라 고생했던 기억이 난다. 그때는 any는 모든 타입을 허용하고 사용을 지양해야 된다 정도만 알고있었던 정도였지만 오늘 학습을 통해 any타입에 대해 완벽히 파악할 수 있었고 unknown타입은 사용해보지 않았지만 어떤 상황에서 사용해야하는지 학습할 수 있었다. any 타입TypeScript의 any 타입은 자바스크립트의 모든 자료형과 매핑될 수 있습니다. 자바스크립트의 typeof 연산자나 Object.prototype.toString.call(...)로는 any라는 타입을 찾을 수 없으며, 이는 ..
타입스크립트를 사용하면서 아직 타입스크립트에 대한 이해가 부족하다고 느껴 "우아한 타입스크립트 with 리액트" 서적을 사서 공부하고 있다. 마침 티스토리에서 오블완 챌린지를 시작하기도 했고 오늘부터 3주간 챌린지에 참여하면서 타입스크립트 공부 일지를 작성해 볼 생각이다. 타입을 선언할 때 type, interface 어떤 것을 사용해야 할까? 1. type 키워드의 특징과 사용 사례type은 타입에 대한 별칭을 만들어주는 기능을 합니다. 다음과 같은 경우에 유용하게 사용할 수 있습니다.간단한 객체나 유니온 타입, 교차 타입: type은 유니온(|)이나 교차(&)와 같은 복잡한 타입 조합을 처리할 때 편리합니다.프리미티브 타입 정의: 특정 값이 제한된 타입이 필요할 때 유용합니다. 예를 들어, type..
1. 이분탐색이란 ? 이분 탐색(Binary Search)은 정렬된 배열에서 값을 찾는 효율적인 탐색 알고리즘배열을 절반으로 나누면서 목표 값을 찾기 때문에 시간 복잡도가 O(log n) : 조건은 배열이 반드시 정렬되어 있어야 한다는 점 !! 2. 이분 탐색 과정 배열의 중간 값을 확인한다.중간 값이 찾으려는 값보다 크면, 왼쪽 절반을 탐색한다.중간 값이 찾으려는 값보다 작으면, 오른쪽 절반을 탐색한다.값을 찾을 때까지 이 과정을 반복한다. 3.이분 탐색의 JavaScript 구현 JavaScript로 이분 탐색을 구현하는 방법은 두 가지가 있다. 재귀 함수와 반복문을 사용하는 방식 (1) 재귀를 이용한 이분탐색 구현 function binarySearch(arr, target, start = 0, ..
드디어 ... 4개월간 길다면 길고 짧다면 짧았던 프로젝트가 끝났습니다 !! 이번 프로젝트는 정말 얻어가는게 많은 프로젝트였습니다. 프로젝트 진행 방식부터 프로젝트 구조나 새로운 기술 도입 등 가장 많은 도전을 했던 프로젝트였습니다. 프로젝트에 대한 자세한 설명은 프로젝트 리드미에 작성해두었습니다. ( 한달 정도는 서버가 열려있기 때문에 만들어진 프로젝트를 사용해보고 싶은 분은 배포 링크를 통해 사용해볼 수 있을 겁니다 !! )https://github.com/baejb/FE GitHub - baejb/FE: 프론트엔드 레포지토리프론트엔드 레포지토리. Contribute to baejb/FE development by creating an account on GitHub.github.com 프로젝트를 통..
https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다.이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다.맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다.엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다.왼쪽..
지난 포스트에서는 리액트 쿼리에 대해 작성해보았고 오늘은 실제로 진행중인 프로젝트에 적용한 내용에 대해 작성할 것이다 ! 왜 리액트 쿼리를 사용했는가 ? 현재 메인 화면에 진입했을 때 MainLayout.tsx 에 존재하는 네비게이션 바에서 회원 정보를 넘겨주어 네비게이션 바에서 회원 정보를 렌더링 하는 형식으로 코드를 작성했었다. 리액트 쿼리 적용 전 회원 조회 코드 MainLayout.tsxconst { data, callApi, statusCode } = useApi(); useEffect(() => { const fetchData = async () => { const token = localStorage.getItem("accessToken"); const hea..
!!! 프로젝트에 적용하려고 하자마자 에러가 떴다.. 그래서 처음 이유로는 App 을 QueryClient 로 감싸주지 않았다는 이유였는데 하지만 나는 모두 감싸준 상태였다.. import React from "react";import ReactDOM from "react-dom/client";import App from "./App.tsx";import "./index.css";import { BrowserRouter } from "react-router-dom";import { QueryClient, QueryClientProvider } from "@tanstack/react-query";import { ReactQueryDevtools } from "@tanstack/react-query-devt..