js 40

js 메모리(Memory)

컴퓨터 주요 장치들 (많지만 3개를 뽑자면) 하드디스크 - 저장공간 CPU - 연산 메모리 - 임시 저장 문서파일 실행 시 클릭 시 cpu가 연산 후 하드디스크에서 데이터를 메모리로 넘김 연산 처리할 수 있는 애플리케이션 실행 수정하는 내용을 메모리에 주기적으로 수정 저장하면 메모리의 내용을 하드디스크로 넘김 메모리 메모리는 메모리셀 저장자치들을 연속으로 구성한 것 한 메모리셀 당 1byte(8bit) 애플리케이션을 실행하면 필요한 data 공간만큼 메모리셀을 차지 애플리케이션이 메모리에 올리면 code, data, stack, heap으로 구성 됨 code - 개발자가 작성한 코드 보관 data - 데이터 보관 stack - 실행 순서를 보관 heap - 여러 가지의 테이터를 묶음 객체 보관

JS 2024.03.30

js 자바스크립트 동작

자바스크립트가 동작하기 위해선 브라우저 안에 있는 엔진이 필요하며 동작은 인터프리터 방식이다. 인터프리터 런타임 시 코드를 한 줄씩 번역하면서 실행하는 방식 동적임 한 줄씩 번역하기 때문에 사용 시 느리다고 느낄 수 있음 (하지만 요즘 브라우저 엔진이 빨라 괜춘!) 다른 언어들은 동작은 컴파일러 방식이다. 컴파일러 코드를 컴파일링해 실행파일로 변환 후 실행하는 방식 정적임 첫 로딩은 시간이 걸리지만 코드가 전부 실행되므로 이후 빠르다고 느낌 ECMAScript js를 실행시키는 브라우저 엔진은 다양한 종류가 있다. 그래서 공통된 문법의 규격사항과 표준사항을 정한 것이 ECMAScript이다. 엔진종류 참고 JS(자바스크립트)란? JS(자바스크립트) - 웹페이지에 생동감을 주기 위해 만들어진 프로그래밍 언..

JS 2024.03.30

LV0 27 점의 위치 구하기

문제 - 사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다. x 좌표와 y 좌표가 모두 양수이면 제1사분면에 속합니다. x 좌표가 음수, y 좌표가 양수이면 제2사분면에 속합니다. x 좌표와 y 좌표가 모두 음수이면 제3사분면에 속합니다. x 좌표가 양수, y 좌표가 음수이면 제4사분면에 속합니다. x 좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어집니다. 좌표 dot이 사분면 중 어디에 속하는지 1, 2, 3, 4 중 하나를 return 하도록 solution 함수를 완성해주세요. 입출력 예 dot result [2, 4] 1 [-7, 9] 2 나만의 풀이 dot 매개변수에 주어지는 배열을 숫자들이 음수 인지 양수 인..

LV0 26 문자 반복 출력하기

문제 - 문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요. 입출력 예 my_string n result "hello" 3 "hhheeellllllooo" 나만의 풀이 반복문을 이용해서 문제를 풀었다. my_string 매개변수를 for문을 이용해 배열로 분리하고 다시 for문을 이용해 매개변수 n만큼 배열에 넣은 후 join을 이용해 다시 문자열로 바꿔서 문제를 풀어보았다. 다른 분들은 map을 이용해서 풀이를 한 것을 볼 수 있었다. (빨리 공부해야겠다 ㅜㅜ) function solution(my_string, n) { let arr = []; for (let i = 0; ..

LV0 25 배열 두 배 만들기

문제 - 정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요. 입출력 예 numbers result [1, 2, 3, 4, 5] [2, 4, 6, 8, 10] [1, 2, 100, -99, 1, 2, 3] [2, 4, 100, -198, 2, 4, 6] 나만의 풀이 이 문제를 어떻게 풀지 고민하다 우선 반복문을 이용해 간단히 풀고 다른 분들이 어떻게 풀었는지 확인했다. 그런데 대부분 map을 이용해서 문제를 푼 것을 알 수 있었다. 아직 map을 사용해 보지도 않았고 map에 대해 알아보았다! map( a => a + 1)을 예로 들면 배열을 하나 하나 꺼내어 매개변수 a에 넣고 화살표 함수로 함수를..

LV0 24 편지

문제 - 머쓱이는 할머니께 생신 축하 편지를 쓰려고 합니다. 할머니가 보시기 편하도록 글자 한 자 한 자를 가로 2cm 크기로 적으려고 하며, 편지를 가로로만 적을 때, 축하 문구 message를 적기 위해 필요한 편지지의 최소 가로길이를 return 하도록 solution 함수를 완성해주세요. 입출력 예 message result "happy birthday!" 30 "I love you~" 22 나만의 풀이 어... 이문제는 length로 길이 구하고 * 2 하면 끝이다... 어... 더 설명이... function solution(message) { return message.length * 2; }

LV0 23 양꼬치

문제 - 머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요. 입출력 예 n k result 10 3 124,000 64 6 768,000 나만의 풀이 어... 이번 문제는 그냥 초등학생 수학문제 같은 니낌이였다.(너무 껌이네 이게 아니라 그냥 단순 연산문제!!) 그냥 식으로 표현하면 12000 * n + 2000 * (k - n/10의 몫)이다 이걸 코드로 풀면 끝~ function solution (n, k) { return 12000 * n + 2000 * ..

LV0 22 자릿수 더하기

문제 - 정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요 입출력 예 n result 1234 10 930211 16 나만의 풀이 처음에는 숫자들을 분리하려고 했다. 그래서 .split('')를 이용을 했는데 계속 오류가 발생해서 스트레스를 받고 있는 상황이였는데... 쉰다고 생각을 멈추니 split는 숫자열을 분리하지 못한다는 것을 떠올렸다. 그래서 toSting을 이용해 문자열로 만들고 reduce()를 이용해 모든 숫자를 더하는데 Number을 이용해 문자열로 바꾼 숫자들을 다시 숫자열로 치환했다. 그래서 완성한 코드~~ ※ reduce의 맨 뒤에 있는 0은 더 하기던 기본 값 설정이라고 보면 된다. 즉 0이 아니라 1이면 값이 +1이 ..

LV0 21 배열 자르기

문제 - 정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요. 입출력 예 numbers num1 num2 result [1, 2, 3, 4, 5] 1 3 [2, 3, 4] [1, 3, 5] 1 2 [3, 5] 나만의 풀이 - 이번에는 배열의 범위를 설정해 원하는 부분의 값을 출력하는 문제이다~~ 내장 함수로 array.slice(num1, num2);가 있는데 이것은 slice() 안에 첫 번째 수부터 두 번째 수 앞까지만 출력해주는 내장 함수이다. 문제는 해당하는 num2의 자리에 있는 숫자도 출력해야 하니 +1을 해주었다. const solu..