프로그래머스(13)
-
해시 [Hash]
| 해시 테이블 이란? 해시는 유일한 값을 저장하기 위한 자료구조이다. key-value 를 저장하기 위해 사용된다. 배열과는 다르게 순서를 가지지 않으며 거의 모든 언어에서 해시라는 구조가 사용된다. 그 이유는 값을 찾는데에 상당히 빠른 시간으로 처리할 수 있다. 기존 자료구조인 이진탐색트리 / 배열 에 비해 빠른 속도를 가진다. Python 에서는 Dictionaries 가 있으며 JavaScript는 Objects / Maps 로 해시 테이블을 구현할 수 있다. 배열을 사용하여 값을 저장하고 그 값을 사용해야 할 때 우리는 해당 값을 가지고 있는 순서 즉 index를 알아야 한다. 하지만 해시는 내가 지정한 key로 원하는 값을 추출할 수 있다. | 직접 주소 테이블 (Direct Address T..
2023.12.12 -
[JS] 추억 점수
| 문제 설명 사진들을 보며 추억에 젖어 있던 루는 사진별로 추억 점수를 매길려고 합니다. 사진 속에 나오는 인물의 그리움 점수를 모두 합산한 값이 해당 사진의 추억 점수가 됩니다. 예를 들어 사진 속 인물의 이름이 ["may", "kein", "kain"]이고 각 인물의 그리움 점수가 [5점, 10점, 1점]일 때 해당 사진의 추억 점수는 16(5 + 10 + 1)점이 됩니다. 다른 사진 속 인물의 이름이 ["kali", "mari", "don", "tony"]이고 ["kali", "mari", "don"]의 그리움 점수가 각각 [11점, 1점, 55점]]이고, "tony"는 그리움 점수가 없을 때, 이 사진의 추억 점수는 3명의 그리움 점수를 합한 67(11 + 1 + 55)점입니다. 그리워하는 사람..
2023.07.19 -
[JS] 짝수 홀수 개수
1. 문제설명 정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요. 제한 조건 1 ≤ num_list의 길이 ≤ 100 0 ≤ num_list의 원소 ≤ 1,000 입출력 예 my_string result [1, 2, 3, 4, 5] [2,3] [1,3,5,7] [0,4] 2.해결 let result = [ num_list.filter((i) => i % 2 === 0).length, num_list.filter((i) => i % 2 != 0).length ]; return result; 배열의 각 요소가 홀수인지 짝수인지 판별을 하려면 배열의 요소에 접근해야했다. 그래서 filter를 선..
2023.05.02 -
[JS] 양꼬치
1. 문제설명 머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요. 제한 조건 0 < n < 1,000 n / 10 ≤ k < 1,000 서비스로 받은 음료수는 모두 마십니다. 입출력 예 n k result 10 3 124,000 64 6 768,000 2.해결 function solution(n, k) { const sheep = 12000 * n; const drink = 2000 * (n / k - parseInt(n / 10)); let defaultPri..
2023.05.02 -
[JS] 문자열 앞의 n 글자
1. 문제설명 문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string의 앞의 n글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요. 제한 조건 my_string은 숫자와 알파벳으로 이루어져 있습니다. 1 ≤ my_string의 길이 ≤ 1,000 1 ≤ n ≤ my_string의 길이 입출력 예 my_string n result "ProgrammerS123" 11 "ProgrammerS" "He110W0r1d" 5 "He110" 2.해결 function solution(my_string, n) { return my_string.slice(0, n); } 매우 간단한 문제이다. 문제와 같은 상황이라면 기본적으로 지원하는 slice메서드를 사용해도 되고 s..
2023.05.01 -
[JS] 문자열 곱하기
1. 문제설명 문자열 my_string과 정수 k가 주어질 때, my_string을 k번 반복한 문자열을 return 하는 solution 함수를 작성해 주세요. 제한 조건 1 ≤ my_string의 길이 ≤ 100 my_string은 영소문자로만 이루어져 있습니다. 1 ≤ k ≤ 100 입출력 예 my_string k result "string" 3 "stringstringstring" "love" 10 "lovelovelovelovelovelovelovelovelovelove" 2.해결 function solution(my_string, k) { let result = []; for (let i = 1; i
2023.05.01