본문 바로가기

전체 글

(177)
[연습문제][Lv.1] 문자열을 정수로 바꾸기 문제 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.제한 조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니다. s는 "0"으로 시작하지 않습니다. 입출력 예 예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다. str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다. 나의 답 그냥 parseInt() 함수를 사용했다. function solution(s) { return parseInt(s); } 인상적인 다른 사람의 답 자바스크립트의 특성을 사용한 것인데, 문자열을 숫자와 사칙연산하여 자료형을 숫자로 변환 하였다...
[연습문제][Lv.1] 문자열 내 p와 y의 개수 문제 설명 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다. 제한사항 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있습니다. 나의 답 우선 문자열에 대소문자가 섞여 있으므로, 전달 받는 문자열을 모두 소문자로 바꿔준 후 진행하였다. 이후 문자열을 돌면서 p와 y 개수를 저장하고, 마지막에 ternary ope..
[연습문제][Lv.1] 정수 제곱근 판별 문제 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.제한 사항 n은 1이상, 50000000000000 이하인 양의 정수입니다. 나의 답 Math.sqrt() 함수를 이용해 n의 루트 값이 양수이며 정수인 경우에 문제에서 요구한 값을 answer로 리턴하도록 짜주었다. 두개의 조건 중 하나라도 일치하지 않을 경우, -1을 리턴하도록 하였다. function solution(n) { var answer = 0; let x = Math.sqrt(n); if ( x > 0 && x % 1 === 0){ answer = (x+1)*(x+1..
[20221112] scope & strict mode & module 자바스크립트에서 scope (변수가 존재하는 범위)는 {} 블록과 function {} 함수 블록이 존재한다. 종종 여러 자바스크립트 문서를 합치다 보면, 변수 충돌 문제가 발생하는데, 이때, 해결 방법으로 scope를 나눠줄 수 있다. 하지만, 구 버전의 자바스크립트에서는 변수를 선언하기 위해 var 키워드를 사용했고, var의 경우, 함수 블록을 사용하는 경우에만 충돌을 막을 수 있음 또, Babel 등과 같이 최신 버전의 자바스크립트를 구 버전의 스크립트로 변환해주는 트랜스파일러도 단순 {} 블록으로 함수 충돌을 막는 코드는 제대로 변환해주지 못함 따라서, 변수 충돌 문제를 해결하기 위해 많은 경우, 함수 블록을 사용함 => 이때, 선언적 함수를 사용해 스크립트가 실행되면 해당 함수블록이 바로 호이..
[20221112] 콜백함수를 활용한 Array 내장 함수들 : forEach(), map(), filter() 오늘 배운 것 함수를 하나의 자료형으로 취급하는 언어에서 함수는 일급객체 (first-class function)라고 부르며, 함수를 하나의 자료형으로 취급하기 때문에, 함수를 변수에 할당하거나, 다른 함수의 매개변수 (콜백)로 사용할 수 있음 First-class Function - MDN Web Docs Glossary: Definitions of Web-related terms | MDN A programming language is said to have First-class functions when functions in that language are treated like any other variable. For example, in such a language, a function ca..
[20221111] sourcetree branch 삭제할 때 에러 sourcetree에서 브랜치를 삭제하고 싶었다. 왼쪽 메뉴바의 브랜치명에 커서를 두고 우클릭으로 해서 브랜치 삭제를 진행했다. 그랬더니 아래와 같이 에러가 뜨며 삭제되지 않았다. 에러 메세지 더보기 git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks branch -d delete_test error: The branch 'delete_test' is not fully merged. If you are sure you want to delete it, run 'git branch -D delete_test'. 에러 메서지를 따라 터미널 창을 켜서 'git branch -D delete_test' 명령어로 브랜치를 삭제하..
[연습문제] [Lv.1] 자연수 뒤집어 배열로 만들기 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 앞서 푼 정수의 각 자리수 더한 값과 동일하게 접근했다. 각 자리의 숫자에 접근할 수 있도로고 string형태로 바꿔주고 각 자리수의 string을 number로 변환하여 array에 push해주었다. function solution(n) { var answer = []; numbers = n.toString(); for (let i = numbers.length-1; i >=0; i--){ answer.push(Number(numbers[i])); } return answer; } 문자열 접근 방법 외에도 숫자만 가지고도 문제를 풀 수 있다. 정수이기 때문에, 1..
[연습문제] [Lv.1] 자릿수 더하기 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 간단하게, 각자리수를 반환할 수 있도록 숫자를 문자로 바꿔준 다음 for loop을 통해 각 자리의 숫자를 숫자형으로 바꾸어 더해주었다. 같은 로직으로 split('')함수를 사용해 array로 만든 후 map, reduce 등을 사용할 수도 있겠다. function solution(n) { let answer = 0; let num = n.toString(); for (let i = 0; i < num.length; i++) { answer += Number(num[i]); } return answer; } fun..