본문 바로가기

전체 글

(291)
[프로그래머스] 조이스틱 https://school.programmers.co.kr/learn/courses/30/lessons/42860 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조이스틱은 가로 또는 세로로 움직일 수 있다. 이때 가로 방향이나 세로 방향이나 회전하는 것처럼 움직인다. 세로: 알파벳을 A-Z 사이에서 움직일 수 있다. 가로: 각 자리를 이동할 수 있다. 알파벳 이름의 각 자리는 맨 처음에 A로 시작한다고 가정하며, 주어진 이름을 완성하는데 걸리는 최소 조작 회수를 구한다. 세로 방향 세로 방향의 알파벳 이동은 나타내는게 별로 어렵지 않았다. 세로에서 수행할..
[프로그래머스] 숫자짝꿍 https://school.programmers.co.kr/learn/courses/30/lessons/131128 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 각 숫자 문자열을 받아 만들 수 있는 가장 큰 숫자를 문자열로 반환하는 문제다. 처음에는 각 문자열을 나누어 정렬한 후 서로 같은 문자를 비교하는 방식으로 문제를 해결했다. function solution(X, Y) { const xsp = X.split('').map(it => Number(it)).sort((a,b) => b-a); const ysp = Y.split('').map(it =>..
새로구미 젤리 수상할 정도로 돈이 많을 것 같은 그림...
[rust] 문자열 문자 단위로 나누기 다른 언어와 마찬가지로 rust의 문자열은 split 함수를 이용한다. let del = String::from("abcdefghijklmnopqrstuvwxyz0123456789"); let char_arr: Vec = del.split("").collect(); println!("{char_arr:?}"); 문자열을 split으로 나누면 Split 타입이 되므로, 결과를 벡터로 변환하기 위해 collect을 이용한다. 위 코드를 통해 얻는 결과는 일반적인 기대와는 달리 양 옆에 공백(empty)인 슬라이스를 표함한다. 이를 없애기 위해서는 코드를 다음과 같이 수정한다. let del = String::from("abcdefghijklmnopqrstuvwxyz0123456789"); let char_a..
[nodejs] express-session typescript와 사용하기 express-session 모듈을 사용할 때 데이터는 req.session.~ 형태로 추가한다. 이때 추가되는 객체는 @types/express-session을 따로 설치하더라도 인식되지 않는다. 따라서 따로 타입 정의를 해줘야 한다. 타입 정의를 작성할 파일은 tsconfig.json 파일 내에 rootDir로 정의된 경로 내에 존재해야 타입 추론이 정상적으로 진행되는 것으로 보이며, 방법은 크게 2개로 나뉜다. src/@types 폴더 내 *.d.ts 파일 내에 정의한다. src/global.d.ts 파일 내에 정의한다. 두가지 방법 중 어떤 방법을 선택했다고 가정하고, req.session의 구조를 살펴보자. /** * This request's `Session` object. * Even tho..
[프로그래머스] 이진수 더하기 https://school.programmers.co.kr/learn/courses/30/lessons/120885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 많은 언어들이 N진수 문자열 10진수 숫자 변환 기능을 지원하므로 문제를 푸는 것 자체는 어렵지 않다. 예를 들어 자바스크립트에서 지원하는 기능을 이용하면 다음과 같이 풀 수 있다. function solution(bin1, bin2) { return (parseInt(bin1,2) + parseInt(bin2,2)).toString(2); } 다만 위 코드는 딱히 로직이랄게 없으므로, 이진수를..
[프로그래머스] 당구 연습 https://school.programmers.co.kr/learn/courses/30/lessons/169198 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 원쿠션으로 주어진 공을 맞출 때, 공이 이동하는 최소값을 찾는 문제이다. 문제 설명 중 입사각 및 반사각이 동일하다는 정보가 있는데, 이 정보를 가지고 각도를 어떻게 구해보겠다고 하면 문제가 산으로 가기 쉽다. 우선 문제를 생각하기 전에, 입사각과 반사각에 대해 다시 떠올려보자. https://terms.naver.com/entry.naver?docId=2039087&cid=47308&categ..
[프로그래머스] 베스트 앨범 https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해시 테이블을 사용하는 문제다. 자바스크립트에는 이에 대응되는 Map이 있으므로, 이를 이용하여 문제를 풀었다. function solution(genres, plays) { const map = new Map(); genres.forEach((gen, idx) => { const target = map.get(gen); if (!target) { // 해당 장르에 대한 초기 세팅. map.set..