JavaScript 223

LV0 44 숫자 찾기

문제 - 정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return 하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요. 입출력 예 num k result 29183 1 3 232443 4 4 123456 7 -1 나만의 풀이 이 문제는 내장 함수인 indexOf를 이용해 문제를 풀었다. indexOf를 사용하기 위해선 숫자를 문자열로 바꾸는 toString을 사용한 뒤 indexOf를 사용하면 매개변수로 주어지는 k의 위치를 숫자로 반환하는데 없으면 -1을 반환한다. 그 후 삼항 연사자를 이용해 컴퓨터는 0부터 시작하니깐 +1을 한 상태로 리하고 0이하면 그대로 반환하면 끝 function solution(n..

LV0 43 인덱스 바꾸기

문제 - 문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요. 입출력 예 my_string num1 num2 result "hello" 1 2 "hlelo" "I love you" 3 6 veoyou" 나만의 풀이 이 문제를 풀 때 고민을 했다. 우선 배열로 바꾼 뒤 문제를 풀어야 한다는 것을 처음 보자마자 알았다. 그러면 배열로 바꾼 뒤 어떻게 자리를 바꿔주면 될까 고민을 했다. 그리고 내장함수를 찾아보았는데 다양한 방법들이 있었지만 사용하지 않고 풀 수 있는 방법을 생각해내서 그것으로 풀었다. 우선 바꿀 위치의 배열 num1를 상수로 ..

11 JS 메서드와 this

메서드 - 객체는 실제 존재하는 개체를 표현할 때 생성하는 것으로 사용자에게 특정한 행동을 할 수 있게 하는 것입니다. 객체 프로퍼티에 할당된 함수를 메서드(method) 라고 부릅니다. 메서드는 아래와 같이 이미 정의된 함수를 이용해서 만들 수도 있습니다. let user = { // ... }; // 함수 선언 function sayHi() { alert("안녕하세요!"); }; // 선언된 함수를 메서드로 등록 user.sayHi = sayHi; user.sayHi(); // 안녕하세요! 메서드 단축 구문 - 객체 리터럴 안에 메서드를 선언할 때 사용할 수 있는 단축 문법으로 function을 생략해도 매서드를 정의할 수 있습니다. user = { sayHi: function() { alert("H..

JS 2022.10.20

LV0 41 순서쌍의 개수

문제 - 순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return 하도록 solution 함수를 완성해주세요. 입출력 예 n result 20 6 100 9 나만의 풀이 이 문제 처음 접근을 수학적으로 부터 시작했다. 매개변수 n, 변수 2개를 a, b로 가정했을 때 식으로 간단히 표현하면 a * b = n이 조건이다. 그러면 a이나 b 둘 중 하나만 구할 수 있다면 n / b = a 또는 n / a = b를 이용해 다른 값을 구할 수 있으므로 가짓수를 구할 수 있다. 즉, a 또는 b만 할 수 있으면 순서쌍이 몇가지 인지 알 수 있다는 것!!! 그래서 for문을 이용해 n 수만큼 ..

LV0 40 개미 군단

문제 - 개미 군단이 사냥을 나가려고 합니다. 개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력을 가지고 있습니다. 예를 들어 체력 23의 여치를 사냥하려고 할 때, 일개미 23마리를 데리고 가도 되지만, 장군개미 네 마리와 병정개미 한 마리를 데리고 간다면 더 적은 병력으로 사냥할 수 있습니다. 사냥감의 체력 hp가 매개변수로 주어질 때, 사냥감의 체력에 딱 맞게 최소한의 병력을 구성하려면 몇 마리의 개미가 필요한지를 return하도록 solution 함수를 완성해주세요. 입출력 예 hp result 23 5 24 6 999 201 나만의 풀이 이 문제는 수학적으로 접근을 해보았다. hp의 매개변수에 공격력 5인..

LV0 39 숨어있는 숫자의 덧셈 (1)

문제 - 문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return 하도록 solution 함수를 완성해주세요. 입출력 예 my_string result "aAb1B2cC34oOp" 10 "1a2b3c4d123" 16 나만의 풀이 처음에는 알파벳을 제거하는 방향을 생각을 했다. 그런데 뭔가 복잡해지는 느낌이 들어서 고민을하니 반대로 숫자만 골라내면 되는구나 하는 생각을 했다. 그래서 replace(/[^0-9]/g, "")를 이용해 숫자만 고른 후 값을 넣을 변수를 선언한 뒤 split("")로 배열을 만든 후 map을 이용해서 새롭게 선언한 변수에 숫자를 더한 후 값을 리턴했다. (split("")로 배열로 바꾸게 되면 문자열로 들어감.) function ..

LV0 38 직각삼각형 출력하기

문제 - "*"의 높이와 너비를 1이라고 했을 때, "*"을 이용해 직각 이등변 삼각형을 그리려고 합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요. 입출력 예 입력 #1 3 출력 #1 * ** *** 나만의 풀이 아... 이 문제는 이해하지 못했다. 그런데 찍어서 풀었네?!?! 우선 기본적으로 주어지는 코드는 이렇다. const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); let input = []; rl.on('line', function (line) { input = line.sp..

LV0 37 대문자와 소문자

문제 - 문자열 my_string이 매개변수로 주어질 때, 대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return 하도록 solution 함수를 완성해주세요. 입출력 예 my_string result "cccCCC" "CCCccc" "abCdEfghIJ" "ABcDeFGHij" 나만의 풀이 이번 문제를 가장 힘들어 했다. 가장 먼저 생각한 것은 어떻게 소문자와 대문자와 비교를 한 후 바꾸냐는 것이었다. 그래서 구글에 검색을 해보았다. 구글링 한 후 얻은 정보로 toLowerCase()는 소문자로 toUpperCase()는 대문자로 값을 출력해 주는 내장 함수였다. 그래서 split('')를 이용해 문자열을 알파벳 하나하나를 배열로 분리한 후 map()과 찾은 내장함수들, 조건 연산자를 이용해 대..

LV0 36 n의 배수 고르기

제목 - 정수 n과 정수 배열 numlist가 매개변수로 주어질 때, numlist에서 n의 배수가 아닌 수들을 제거한 배열을 return 하도록 solution 함수를 완성해주세요. 입출력 예 n numlist result 3 [4, 5, 6, 7, 8, 9, 10, 11, 12] [6, 9, 12] 5 [1, 9, 3, 10, 13, 5] [10, 5] 12 [2, 100, 120, 600, 12, 12] [120, 600, 12, 12] 나만의 풀이 배열의 n의 배수를 찾아 배열에 리텅하는 방향으로 문제를 풀었다. 내장 한수로 filter를 사용해보았다~ 우선 값을 리턴할 조건으로 n의 배수이니 반대로 생각하면 n으로 나눠서 나머지가 0인 값만 배열로 리턴해주면 되는 문제였다~~ function s..