JavaScript 223

LV1 16 행렬의 덧셈

문제 설명 - 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. 제한 조건 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다. 입출력 예 arr1 arr2 return [[1, 2], [2, 3]] [[3,4],[5,6]] [[4,6],[7,9]] [[1],[2]] [[3],[4]] [[4],[6]] 나만의 풀이 문제는 쉽게 풀 수 있지만 런타임을 생각하면 이게 맞나? 라는 생각을 했지만 반복문이 2번 나오지 않는 이상 이 문제는 푸는 것이 불가능 하다는 생각을 했다. 그래서 단순하게 이중 for문을 사용해서 풀었다~~ fu..

LV1 15 부족한 금액 계산하기

문제 설명 - 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. 단, 금액이 부족하지 않으면 0을 return 하세요. 제한 사항 놀이기구의 이용료 price : 1 ≤ price ≤ 2,500, price는 자연수 처음 가지고 있던 금액 money : 1 ≤ money ≤ 1,000,000,000, money는 자연수 놀이기구의 이용 횟..

JS 22 셋(Set)

셋(Set) - 중복을 허용하지 않는 값을 모아놓은 특별한 컬렉션입니다. 셋에 키가 없는 값이 저장돤다. - 주요 메서드들 new Set(iterable) – 셋을 만듭니다. 이터러블 객체를 전달받으면(대개 배열을 전달받음) 그 안의 값을 복사해 셋에 넣음. set.add(value) – 값을 추가하고 셋 자신을 반환. set.delete(value) – 값을 제거합니다. 호출 시점에 셋 내에 값이 있어서 제거에 성공하면 true, 아니면 false를 반환. set.has(value) – 셋 내에 값이 존재하면 true, 아니면 false를 반환 set.clear() – 셋을 비움. set.size – 셋에 몇 개의 값이 있는지셈. - 글에서 이해하기 너무 좋은 예시가 있어 들거옮 셋 내에 동일한 값(v..

JS 2022.12.16

LV1 14 문자열 다루기 기본

문제 설명 - 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1 이상, 길이 8 이하인 문자열입니다. s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다. 입출력 예 s return "a234" false "1234" true 나만의 풀이 처음에는 문제를 잘못 이해해서 시간이 걸렸다. 문제를 쉽게 이야기 하면 s로 주어지는 매개변수의 길이가 4 또는 6이며 숫자로만 이루어져 있다면 true 아니면 false를 반환하는 것이다. 문제를 이해하고 처음 생각한 것은 정규표현식이다. 그래서 조건문으로 길이가 4 또..

LV1 13 약수의 개수와 덧셈

문제 설명 - 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ left ≤ right ≤ 1,000 입출력 예 left right result 13 17 43 24 27 52 입출력 예 설명 입출력 예 #1 다음 표는 13부터 17까지의 수들의 약수를 모두 나타낸 것입니다. 수 약수 약수의 개수 13 1, 13 2 14 1, 2, 7, 14 4 15 1, 3, 5, 15 4 16 1, 2, 4, 8, 16 5 17 1, 17 2 따라서, 13 + 14 + 15 - 16 + 17 = 43을 return 해야 ..

21-2 맵(Map) 2

맵의 요소에 반복 작업하기 다음 세 가지 메서드를 사용해 맵의 각 요소에 반복 작업을 할 수 있다. map.keys() – 각 요소의 키를 모은 반복 가능한(iterable, 이터러블) 객체를 반환한다. map.values() – 각 요소의 값을 모은 이터러블 객체를 반환한다. map.entries() – 요소의 [키, 값]을 한 쌍으로 하는 이터러블 객체를 반환한다. 이 이터러블 객체는 for..of반복문의 기초로 쓰인다. let fruit = new Map([ ['apple', 1000], ['banana', 3000], ['orange', 1500] ]); // 키(key)를 대상으로 순회합니다. for (let keys of fruit.keys()) { console.log(keys); // ap..

JS 2022.12.15

LV1 12 문자열 내림차순으로 배치하기

문제 설명 - 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 제한 사항 str은 길이 1 이상인 문자열입니다. 입출력 예 s return "Zbcdefg" "gfedcbZ" 나만의 풀이 문제를 보는 순간 메서드로 spli(''), sort(), join('')을 이용해야 겠다는 생각을 했다. 문제는 sort()를 어떻게 구성하냐 였다. 우선 규칙이 장대하게 설명이 되어 있지만 그냥 내림차순 정렬이랑 다를 게 없다. (아스키코드를 확인하면 알 수 있음.) 처음에는 function solution(s) { return s.split('').sort(..

LV1 11 내적

문제 설면 - 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이) 제한사항 a, b의 길이는 1 이상 1,000 이하입니다. a, b의 모든 수는 -1,000 이상 1,000 이하입니다. 입출력 예 a b result [1, 2, 3, 4] [-3, -1, 0, 2] 3 [-1, 0, 1] [1, 0, -1] -2 나만의 풀이 첫 예시를 식을 풀면 1*(-3) + 2*(-1) + 3*0 + 4*2 = 3이다. 처음에는 map을 이용해서 풀었는데 런타임도 길고 변수도 선언을 하거나..

21-1 JS 맵(Map) 1

맵(Map) - Map은 키가 있는 데이터를 저장한다는 점에서 객체와 유사하다. 다만, Map은 키에 다양한 자료형을 허용한다는 점에서 차이가 있다. - Map에는 다양한 메서드와 프로퍼티가 있다. new Map() – 맵을 만듭니다. map.set(key, value) – key를 이용해 value를 저장합니다. map.get(key) – key에 해당하는 값을 반환합니다. key가 존재하지 않으면 undefined를 반환합니다. map.has(key) – key가 존재하면 true, 존재하지 않으면 false를 반환합니다. map.delete(key) – key에 해당하는 값을 삭제합니다. map.clear() – 맵 안의 모든 요소를 제거합니다. map.size – 요소의 개수를 반환합니다. let..

JS 2022.12.14