반응형
- [ 프론트/Javascript Typescript ][JS] for in 문으로 효율성 테스트 실패하기 (프로그래머스)2024-09-10 14:36:13아래 문제를 풀다가 처음으로 프로그래머스 효율성 테스트에서 실패를 받았다. 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/12906 문제 설명배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다.arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다.배열 arr에서 연속적으로 나타나는 ..
- [ 프론트/Javascript Typescript ]자바스크립트 실행 컨텍스트: 예제를 통해 쉽게 이해하기2024-08-28 14:30:45들어가기 앞서...실행 컨텍스트는 자바스크립트의 동작원리를 담고 있는 핵심 개념이다실행 컨텍스트를 바르게 이해해야, 스코트를 기반으로 바이딩을 관리하는 방법과, 호이스팅이 발생하는 이유, 클로저의 동작 방식, 이벤트 핸들러와 비동기 처리 방식을 이해할 수 있다 소스코드의 타입코드 종류설명전역 코드전역에 존재하는 소스코드를 말한다. 전역에 정의된 함수, 클래스 등의 내부 코드는 포함하지 않는다함수 코드함수 내부에 존재하는 소스코드를 말한다. 함수 내부에 중첩된 함수, 클래스 등의 내부 코드는 포함되지 않는다eval 코드빌트인 전역함수인 eval 함수에 인수로 전달되는 소스코드 그 자체를 말한다모듈 코드모듈 내부에 존재하는 소스 코드를 말한다.모듈 내부의 함수, 클래스 등의 내부 코드는 '포함되지 않는다!..
- [ 프론트/Javascript Typescript ][JS] 자바스크립트 자동 형변환을 이용해서 쉽게 숫자를 문자열로 바꾸기+프로그래머스 129332024-08-02 21:22:51모던 자바스크립트 딥다이브에서 타입 변환(형변환)파트를 읽던 중 발생한 일이다.아래와 같은 구절이 눈에 띄었다 명시적 형변환과 암묵적 형변환에 대해 간단히 짚고 넘어가자.명시적 형변환 (Explicit Type Conversion): * 프로그래머가 코드에서 명확하게 타입 변환을 지정한다 * 예시: Number("123"), String(123), (10).toString() * 코드 가독성이 높고, 코드 리뷰 시 의도를 명확히 알 수 있다암묵적 형변환, 자동 형변환 (Implicit Type Conversion) * 자바스크립트 엔진이 자동으로 타입을 변환해준다 * 예를 들어 10 + ''처럼 숫자 10 뒤에 빈 문자열('')을 합하면숫자 10을 문자열 "10"으로 변..
- [ 프론트/Javascript Typescript ][JS] 자바스크립트 약수 구하기 (Math.sqrt로 시간 복잡도 줄이기)2024-08-02 14:43:25코테 문제를 풀다 보면 인자에 대해 약수를 구해야 하는 경우가 자주 나온다그때마다 약수 구하는 함수를 새로 짰는데, 계속 반복해서 같은 코드를 관리하다 보니 너무 귀찮아져서 블로그에 기록해두고 필요할 때 마다 복사해서 사용하려고 한다 😊 일반적인 코드-1부터 n까지 나머지가 0인 값을 더하기const findDivisors = (n) => { var answer = [1]; //1은 모든 수의 약수니까 약수 배열을 1 포함해 만든다 for(let i = 2; i 사람의 사고 방식으로 작성된 코드이다하지만 1부터 n까지 모든 숫자를 검사하기 때문에 시간 복잡도가 O(n)이라 비효율적이다. 더 효율적인 코드- 1부터 √n까지만 검사하기const findDivisors = (n) => { ..
- [ 프론트/Javascript Typescript ][JS] 로그인 성공? - 프로그래머스 120883 Map의 has get 메서드, some, 구조분해할당2024-07-12 17:00:36문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/120883문제 설명머쓱이는 프로그래머스에 로그인하려고 합니다. 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와 회원들의 정보가 담긴 2차원 배열 db가 주어질 때, 다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요.아이디와 비밀번호가 모두 일치하는 회원정보가 있으면 "login"을 return합니다.로그인이 실패했을 때 아이디가 일치하는 회원이 없다면 “fail”를, 아이디는 일치하지만 비밀번호가 일치하는 회원이 없다면 “wrong pw”를 return 합니다.제한사항회원들의 아이디는 문자열입니다.회원들의 아이디는 알파벳 소문..
- [ 프론트/Javascript Typescript ][JS] 절대 사용하면 안되는 eval 함수에 대해 (프로그래머스 120902 문자열 계산하기)2024-07-08 21:47:37오늘은 무려 자바스크립트 공식 문서인 MDN에서 금기한 eval 함수에 대해 알아보자 프로그래머스 문제얼마 전 프로그래머스 문제를 풀고 있었다 ( 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/120902 )대충 문자열로 식이 주어지면, 그 식을 풀고 값을 리턴하는 코드를 작성해야 했다 어려운 문제는 아니라서 아래와 같이 코드를 작성했고 통과를 했다 내가 작성한 코드const solution=(my_string) => { let a=my_string.split(' ') //공백을 기준으로 문자열을 나눴다 let answer=Number(a[0]); //answer은 배열[0] 값, 즉 첫번째 숫자이다 for(let..
- [ 프론트/Javascript Typescript ][자바스크립트] 캐릭터의 좌표 - 프로그래머스 120861 객체의 속성값 전달하여 변경하기2024-06-19 22:43:01문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/120861머쓱이는 RPG게임을 하고 있습니다. 게임에는 up, down, left, right 방향키가 있으며 각 키를 누르면 위, 아래, 왼쪽, 오른쪽으로 한 칸씩 이동합니다. 예를 들어 [0,0]에서 up을 누른다면 캐릭터의 좌표는 [0, 1], down을 누른다면 [0, -1], left를 누른다면 [-1, 0], right를 누른다면 [1, 0]입니다. 머쓱이가 입력한 방향키의 배열 keyinput와 맵의 크기 board이 매개변수로 주어집니다. 캐릭터는 항상 [0,0]에서 시작할 때 키 입력이 모두 끝난 뒤에 캐릭터의 좌표 [x, y]를 return하도록 solution 함수를 완성..
- [ 프론트/Javascript Typescript ][JS] 영어가 싫어요-프로그래머스 1208942024-06-15 18:44:23문제 설명영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요. 제한사항numbers는 소문자로만 구성되어 있습니다.numbers는 "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" 들이 공백 없이 조합되어 있습니다.1 ≤ numbers의 길이 ≤ 50"zero"는 numbers의 맨 앞에 올 수 없습니다.입출력 예numbers result"onetwothreefourfivesixseveneightnine" 123456789"onefourzerosixseven" 14..
- [ 프론트/Javascript Typescript ][JS] 7의 개수-프로그래머스 120912 join(' ') split(' ') filter() 함수2024-06-06 15:01:43문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/120912 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요.제한사항1 ≤ array의 길이 ≤ 1000 ≤ array의 원소 ≤ 100,000입출력 예arrayresult[7, 77, 17]4[10, 29]0입출력 예 설명입출력 예 #1[7, 77, 17]에는 7이 4개 있으므로 ..
- [ 프론트/Javascript Typescript ][JS로 코테 정복하기] 자주 나오는 함수 정리 + 관련 프로그래머스 문제들2024-06-06 01:50:07들어가기 앞서자바스크립트로 프로그래머스 코딩 테스트 문제를 풀고 정리하는 시리즈입니다.이 시리즈는 C, C++, Python, Java 위주로 가득한 코딩 테스트 자료들 사이에서 자바스크립트로 문제를 푸는 데 어려움을 겪는 프론트엔드 개발자들에게 도움을 주기 위해 만들었습니다.자바스크립트 문제 풀이가 부족해서 어려움을 겪는 분들에게 이 시리즈가 가뭄의 단비 같은 존재가 되길 바랍니다. 목차삼항연산자MapFilter최대공약수, 최소공배수 함수Math.ceil몫을 구하는 가장 쉬운 방법 Math.floor, ~~틸트 연산자중복을 허용하지 않는 Set 객체배열 요소 정렬하기 sort() [JS]배열의 평균값 -프로그래머스120811 sort 함수의 동작 원리에 대해문제 링크: https://school.pro..
- [ 프론트/Javascript Typescript ][자바스크립트] True와 False 에러 Uncaught ReferenceError2024-05-31 01:54:45프로그래머스 120893 문제를 풀던 중 아래와 같이 코드를 짰다 그리고 실행을 했다 그런데 True : False 부분에서 에러가 발생했다. True와 False를 1과 0으로 바꾸면 되어서 에러 자체를 해결하는건 어렵지 않았는데 왜 에러가 발생했는지 이해할 수 없었다 도저히 모르겠어서 GPT한테 물어봤더니... 소문자로 써야 한다고 답했다 자바스크립트는 굉장히 유연한 언어인줄 알았는데, 의외로 이건 깐깐하게 보는것이 신기했다 참고로 콘솔창에서 열면 VM578:6 Uncaught ReferenceError: False is not defined 라는 에러 문구로 뜬다 풀던 문제: https://school.programmers.co.kr/learn/courses/30/lessons/120893 ..
- [ 프론트/Javascript Typescript ][JS] 머쓱이보다 키 큰 사람-프로그래머스 120585 filter함수 사용법2024-05-24 11:32:21문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/120585문제 설명머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요.제한사항1 ≤ array의 길이 ≤ 1001 ≤ height ≤ 2001 ≤ array의 원소 ≤ 200입출력 예arrayheightresult[149, 180, 192, 170]1673[180, 120, 140]1900입출력 예 설명입출력 예 #1149, 180, 192, 170 중 머쓱이보다 키가 큰 ..
반응형