전체 글 669

과일 장수(js, Lv.1)

과일 장수가 사과 상자를 포장하고 있습니다. 사과는 상태에 따라 1점부터 k점까지의 점수로 분류하며, k점이 최상품의 사과이고 1점이 최하품의 사과입니다. 사과 한 상자의 가격은 다음과 같이 결정됩니다.한 상자에 사과를 m개씩 담아 포장합니다.상자에 담긴 사과 중 가장 낮은 점수가 p (1 ≤ p ≤ k)점인 경우, 사과 한 상자의 가격은 p * m 입니다.과일 장수가 가능한 많은 사과를 팔았을 때, 얻을 수 있는 최대 이익을 계산하고자 합니다.(사과는 상자 단위로만 판매하며, 남는 사과는 버립니다)예를 들어, k = 3, m = 4, 사과 7개의 점수가 [1, 2, 3, 1, 2, 3, 1]이라면, 다음과 같이 [2, 3, 2, 3]으로 구성된 사과 상자 1개를 만들어 판매하여 최대 이익을 얻을 수 있..

🗃️javascript 2024.07.07

제로초 slack 강의(새롭게 배운 내용 정리)(2)

참고사항:index.html에서 css 관련한 링크로 css를 위해 계속 링크 주소 업데이트를 하라고 강의 초반 설정에서 소개했지만, 사실상 이제 다 만든 코드들에서 css를 복붙해오고 있기때문에 이 에러가 콘솔에 계속 떠도 크게 문제는 없으니 넘어가면 된다. index.html의 link 태그 주소link rel="stylesheet" href="https://a.slack-edge.com/bv1-8/client-boot-styles.57e47b5.css" crossorigin="anonymous" />  link rel="shortcut icon" href="https://a.slack-edge.com/cebaa/img/ico/favicon.ico" />  link href="https://a.sla..

🗃️javascript 2024.07.05

gravatar 사용하기

gravatar  라이브러리는 프로필 이미지 등록 라이브러리이다.옆에  'DT'라는 표시가 있다면  typescript를 도입중이라면 types버전 라이브러리도 함께 설치해야한다.(만약 DT도 없다면? 본인이 type버전 라이브러리를 만들어줘야함.)(DT는 본 라이브러리 제작자와 , type 버전 라이브러리 제작자가 다른 경우가 많아, 타입 에러가 있을 수 있다.) 이런식으로 옆에 'ts'가 있다면 types 라이브러리를 추가로 설치하지 않아도 된다.

🗃️javascript 2024.07.05

피로도(js, Lv.2)[dfs]

XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"가 있습니다. "최소 필요 피로도"는 해당 던전을 탐험하기 위해 가지고 있어야 하는 최소한의 피로도를 나타내며, "소모 피로도"는 던전을 탐험한 후 소모되는 피로도를 나타냅니다. 예를 들어 "최소 필요 피로도"가 80, "소모 피로도"가 20인 던전을 탐험하기 위해서는 유저의 현재 남은 피로도는 80 이상 이어야 하며, 던전을 탐험한 후에는 피로도 20이 소모됩니다.이 게임에는 하루에 한 번씩 탐험할 수 있는 던전이 여러개 있는데, 한 유저가 오늘 이 던전들을 최대한 많..

🗃️javascript 2024.07.05

라우팅 @ [절대경로를 통한 라우팅이 상태관리에 더욱 용이]

@기호import 이미지 from "../../public/food1.png";import 이미지 from "@/public/food1.png"; 같은 효과를 가져온다. @기호란?{  "compilerOptions": {    "paths": {      "@/*": ["./*"]    }  }}  이 설정은 프로젝트의 모든 디렉토리를 @를 통해 접근할 수 있도록 합니다. 구체적으로 설명하면, @/something이 실제로는 ./something 디렉토리를 가리키도록 매핑됩니다.import Image from "next/image";import Image from "next/image"; next component로 이미지 로딩을 위한 최적화된 설정을 도와준다. 두 코드 모두 똑같은 값을 불러오지만, 나..

🗃️javascript 2024.07.04

프로세스(js, Lv.2)[destructing 선언을 통한 큐 구현]

운영체제의 역할 중 하나는 컴퓨터 시스템의 자원을 효율적으로 관리하는 것입니다. 이 문제에서는 운영체제가 다음 규칙에 따라 프로세스를 관리할 경우 특정 프로세스가 몇 번째로 실행되는지 알아내면 됩니다.1. 실행 대기 큐(Queue)에서 대기중인 프로세스 하나를 꺼냅니다.2. 큐에 대기중인 프로세스 중 우선순위가 더 높은 프로세스가 있다면 방금 꺼낸 프로세스를 다시 큐에 넣습니다.3. 만약 그런 프로세스가 없다면 방금 꺼낸 프로세스를 실행합니다. 3.1 한 번 실행한 프로세스는 다시 큐에 넣지 않고 그대로 종료됩니다.예를 들어 프로세스 4개 [A, B, C, D]가 순서대로 실행 대기 큐에 들어있고, 우선순위가 [2, 1, 3, 2]라면 [C, D, A, B] 순으로 실행하게 됩니다.현재 실행 대기 큐(..

ts의 ?의미는 선택적 생략이 가능함을 의미. + &&연산자 사용

?의 의미function 함수(a?: string | undefined) {  // 함수 본문} ?는 TypeScript에서 사용되는 문법으로, 해당 매개변수가 선택적(optional)임을 나타냅니다. 즉, 이 매개변수는 함수 호출 시 제공될 수도 있고 제공되지 않을 수도 있습니다. 선택적 매개변수는 undefined가 될 수 있으며, TypeScript는 이를 명시적으로 처리합니다.함수("Hello"); // a에 "Hello"가 전달됨함수(undefined); // a에 undefined가 전달됨함수(); // a에 undefined가 전달됨 선택적 매개변수는 보통 필수 매개변수 뒤에 위치하며, 이는 함수 호출 시 혼동을 피하기 위해서입니다. 선택적 매개변수를 사용하면 함수 호출 시 유연성을 높일 수..

useCallback()

useCallback() hook의 하나.아래의 변수 5개 중 1개라도 바뀌면 새로운 변수를 포함한 새로운 함수를 만들어줌.그렇지 않으면 그대로 기존 함수를 기억했다가 불러옴.(캐싱) 리랜더링을 막기위함. 그리고 디버깅을 원활히 하기 위함. const onSubmit = useCallback(    async (e) => {      e.preventDefault();      console.log(email, nickname, password, passwordCheck, mismatchError)    },    [email, nickname, password, passwordCheck, mismatchError],

기사단원의 무기(js, Lv.1)[약수는 짝으로 존재]

숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다.각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니다.예를 들어, 15번으로 지정된 기사단원은 15의 약수가 1, 3, 5, 15로 4개 이므로, 공격력이 4인 무기를 구매합니다. 만약, 이웃나라와의 협약으로 정해진 공격력의 제한수치가 3이고 제한수치를 초과한 기사가 사용할 무기의 공격력이 2라면, 15번으로 지정된 기사단원은 무기점에서 공격력이 2인 무기를 구매합니다..

제로초 slack 강의(새롭게 배운 내용 정리)

안정성 있는 리액트 개발을 위한 많은 라이브러리와 관련 나누는 방법을 설명한다.리액트와 타입스크립트의 문법을 배우기보단,리액트, ts와 다른 많은 라이브러리들을 사용한 개발 과정을 따라해보는 강의다. 잘 모르겠으면 이 강의 자료를 꼭 확인하자.https://github.com/ZeroCho/sleact/blob/master/nest-typeorm/README.md sleact/nest-typeorm/README.md at master · ZeroCho/sleactContribute to ZeroCho/sleact development by creating an account on GitHub.github.com 환경설정 1. js 빌드와 babel 사용 ts -> js로 변환이 가능하지만ts -> bab..