목록전체 글 (403)
Just Do IT!
문제 설명 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 solution 함수를 작성해주세요. 제한 사항 scovil..

힙 자료구 특정한 규칙을 가지는 트리로, 최댓값과 최솟값을 찾는 연산을 빠르게 하기 위해 고안된 완전이진트리를 기본으로 한다. min heap을 사용하면 원소들이 항상 정렬된 상태로 추가되고 삭제되며,min heap에서 가장 작은 값은 언제나 인덱스 0, 즉, 이진트리의 루트에 위치한다. 최소 힙 : 부모 노드의 키값이 자식 노드의 키값보다 항상 작은 힙 최대 힙 : 부모 노드의 키값이 자식 노드의 키값보다 항상 큰 힙 list와 tree의 장점을 모두 사용한다. 트리 구조 사용 요소 삽입 및 최소 값의 제거 시 발생하는 요소의 검색 및 스왑의 횟수보다 일반적인 리스트를 사용할 때보다 적다. 리스트 사용 완전 이진트리는 리스트로 코딩 가능 리스트가 클래스보다 빠르다 파이썬 heapq 모듈 heapq (p..

문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. 작업 진도는 100 미만의 자연수입니다. 작업 속도는 100 이하의 자..

react-dropzone 라이브러리란? 파일 업로드 라이브러리이다. 간단하게 drag&drop으로도 사용 가능하고 클릭하여 파일을 업로드할 수도 있다. 그리고 이미지 썸네일 미리보기를 지원하며 멀티 업로드 기능 역시 지원한다. https://www.npmjs.com/package/react-dropzone https://www.npmjs.com/package/react-dropzone react-dropzone Simple React hook to create a HTML5-compliant drag'n'drop zone for files. Documentation and examples at https://react-dropzone.js.org. Source code at https://github...

요즘 인프런에서 따라하며 배우는 노드, 리액트 시리즈 - 영화 사이트 만들기 강의를 듣고있는데, 강의 코드를 치면서 배우는 와중 오류가 발생했다. 리액트 서버와 노드 서버를 동시에 열기 위해서 package.json 을 아래와 같이 수정했다. 리액트로 만든 frontend 서버는 'npm run frontend'로 열고,node로 만든 backend 서버는 'npm run backend'로 열기로 명령어를 지정했는데,두 서버를 동시에 열기 위해서 'dev'라는 명령어를 따로 만든 것이다.(강의 그대로 수정했다.) 그런데, 중간에 api가 제대로 작동하는지 보고 싶어서 서버를 켰는데,아래와 같은 오류가 나왔다. 원인은? Node.js 버전 호환성 문제로 웹팩(webpack)이 해당 Node.js 버전과 함..

JSON Web Token이란? JSON 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token 토큰 자체를 정보로 사용하는 Self-Contained 방식으로 정보를 안전하게 전달한다. 주로 회원 인증이나 정보 전달에 사용된다. 공식 홈페이지에서 더 많은 정보를 알 수 있다. https://jwt.io/ JWT.IO JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties. jwt.io JWT는 왜 사용할까? 유저가 로그인에 성공한 후에는 access token이라고 하는 암호화된 유저 정보를 첨부해서 request를 보내게 된..

암호화란? 어떤 평문을 암호문으로 바꾸는 것이다. 반대로, 암호문을 평문으로 바꾸는 것은 복호화라고 한다. 암호화는 아주 기본적인 정보 보안 방법이다. 데이터 유출 자체를 막지는 못하지만, 어떤 정보를 담고 있는지 알지 못하게 하는 것이다. 암호화의 필요성 유저의 비밀번호는 절대 비밀번호 그대로 DB에 저장 하지 않는다. DB가 해킹을 당하면 유저의 비밀번호도 그대로 노출 된다. 외부 해킹이 아니더라도 내부 개발자나 인력이 유저들의 비밀번호를 볼 수 있다. 유저의 비밀번호는 꼭 암호화 해서 저장 해야 한다. Bycript란 무엇인가 단방향 암호화를 위해 만들어진 해시 함수 (복호화 불가능) 비밀번호 자체를 검증할 때 입력받은 값을 암호화해서 저장된 암호화된 값과 비교해서 검증할 수 있다 Hash 임의의 ..

.env 파일이란? 유닉스 및 유닉스 계열 운영 체제용 셸 명령어 환경변수 파일을 외부에 만들어 URL,포트, API_KEY 등을 저장시켜 소스코드 내에 하드코딩하지 않고 사용할수 있다. 외부 파일(.env)에 환경변수를 정의하여 변수로 받아오는 이유는 보안과 유지보수에 용이하기 때문이다. 환경 변수 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임 dotenv 환경변수를 .env라는 파일에 저장하고 process.env로 로드하는 의존성 모듈 .env 파일 생성하기 최상위 경로(root)에서 파일 생성 환경 변수로 지정할 값 작성 리액트인 경우 REACT_APP_로 시작 NextJS의 경우 NEXT_PUBLIC_으로 시작 .gitignore에 .env 파일 추가 위의 캡처본들 처럼..

mongoose란? Mongoose 모듈은 MongoDB 라는 NoSQL 데이터베이스를 Node.js로 사용할 수 있도록 하는 확장 모듈 데이터를 만들고 관리하기 위해 스키마(schema)를 만들고, 그 스키마로 모델을 만들어 데이터 관리 가능 mongoDB에는 스키마가 없지만 mongoose를 통해 생성 가능 스키마와 모델을 통하여 data를 불러온 후 객체화 시켜 빠르게 수정함으로써 데이터에 접근 가능하게 만들어줍니다. 모델링 된 문서(document)가 모여있는 Collection을 관리하는 것을 수월하게 만들어 줍니다. https://www.npmjs.com/package/mongoose mongoose Mongoose MongoDB ODM. Latest version: 8.0.3, last pu..
나는 2023년을 잘 보냈을까? 어느덧 2024년이 된 지 벌써 4일이나 지났다. 원래 회고는 마지막날 하는 거라지만, 블로그에서는 조금 늦었다. 2023년은 바쁘기도 했고 느긋하기도 했던 해였던 것 같다. 바뀐 건 없는데....아닌가,돌이켜보면 꽤나 바뀐 것 같다. 상반기에 계획했던 걸 지키고 있었나 상반기 회고에서는 이런걸 적어뒀었구나. 1. 코딩테스트 준비 2. CS 지식 보강 (이전 수업들+깃허브 CS 모음으로 공부) 3. 운동 (개인적 목표) 음...여기서 운동 말고는 지킨거 없는 듯 ㅋㅋㅋㅋㅋㅋㅋ 그나마 운동도 12월에 아프면서 약간 흐지부지 된 것 같다. 아무튼....저 세 가지 목표를 지키지 못했다는 양심의 가책이 든다 ㅋㅋㅋㅋ 상반기를 너무 바쁘게 보내서인지 7-8월 이후에는 뭔가 아무것..