https://school.programmers.co.kr/learn/courses/30/lessons/17685 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 설명자동완성 포털 다음에서 검색어 자동완성 기능을 넣고 싶은 라이언은 한 번 입력된 문자열을 학습해서 다음 입력 때 활용하고 싶어 졌다. 예를 들어, go 가 한 번 입력되었다면, 다음 사용자는 g 만 입력해도 go를 추천해주므로 o를 입력할 필요가 없어진다! 단, 학습에 사용된 단어들 중 앞부분이 같은 경우에는 어쩔 수 없이 다른 문자가 나올 때까지 입력을 해야 한다. 효과가 얼마나 좋을지 알고 싶은 라이언은 학습된 단어들을 찾을 때 몇 ..
분류 전체보기
숨바꼭질 2 문제수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다.수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 그리고, 가장 빠른 시간으로 찾는 방법이 몇 가지 인지 구하는 프로그램을 작성하시오.입력첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다.출력첫째 줄에 수빈이가 동생을 찾는 가장 빠른 시간을 출력한다.둘..
1. JavaScript에서의 Array 사용JavaScript에서는 하나의 배열에 숫자, 문자열, 함수 등 다양한 타입의 데이터를 혼합해서 넣을 수 있습니다.const array = [1, "JavaScript", () => console.log("Hello")];console.log(array[0]); // 1console.log(array[1]); // "JavaScript" 이처럼 JavaScript의 배열은 다양한 타입의 데이터를 자유롭게 담을 수 있는 유연성을 제공하지만, 잘못된 데이터가 배열에 포함될 가능성도 큽니다. 이로 인해 데이터의 타입 일관성을 보장하기 어렵고, 예상치 못한 버그가 발생할 수 있습니다. 2. TypeScript에서 Array 타입 선언 방법TypeScript에서는 Ar..
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 프로젝트를 통..