변수란 무엇인가?
·
기술/JavaScript
변수는 데이터를 저장해두기 위한 '이름 붙은 상자' 라고 생각하면 됩니다.컴퓨터는 메모리라는 공간에 데이터를 저장합니다.이 메모리는 아주 작은 칸들(메모리 셀)로 나뉘어 있고, 각각은 주소를 가지고 있습니다.그런데 그 주소는 01010010 같은 복잡한 숫자라 외우기 어렵죠.그래서 우리는 그 주소에 '변수 이름'이라는 라벨을 붙여서 사용합니다.예를 들어 score라는 변수를 만들면, 그 이름을 통해 해당 공간에 접근할 수 있게 됩니다. 📌 왜 변수 이름이 필요할까?메모리 주소는 실행할 때마다 바뀌기도 하고, 직접 쓰기엔 실수가 생기기 쉬워요.그래서 변수 이름을 통해 간접적으로 안전하게 값에 접근할 수 있습니다.변수에 대한 용어 정리var score;score = 80;">용어의미">변수 선언"이 이름의..
자바스크립트란?
·
기술/JavaScript
자바스크립트가 어떤 특징을 가진 언어인지 간단히 알아봅시다!1. 웹브라우저에서 동작하는 프로그래밍언어자바스크립트는 대부분의 웹 브라우저(Chrome, Firefox, Safari 등)에 기본 탑재되어 있으며,HTML과 CSS와 함께 웹을 구성하는 3대 요소 중 하나입니다.브라우저 내에서 즉시 실행 가능하고, 별도의 설치 없이 동작합니다.버튼 클릭, 입력 처리, 애니메이션 등 동적인 UI를 구현할 수 있습니다.예: 사용자가 버튼을 클릭하면 팝업을 띄우는 로직 2. 인터프리터 언어 (개발자가 별도의 컴파일 작업을 수행하지 않음)자바스크립트는 컴파일 단계 없이 코드가 한 줄씩 해석되고 즉시 실행되는 언어입니다.개발자가 작성한 코드를 별도의 번역 과정 없이 바로 실행코드 변경 후 브라우저를 새로고침하면 즉시 반..
프로그래머스, 자바스크립트) 날짜 비교하기
·
개발/알고리즘(코딩테스트)
날짜 비교https://school.programmers.co.kr/learn/courses/30/lessons/181838?language=javascript 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 풀이date...를 [y,m,d] = date1 으로 비교해서 풀까 하다가 [2021,1,5,], [2022,12,5] 이런 반례도 따져줘야 하기 때문에 new Date() 를 통해 날짜를 date 값으로 바꿔서 비교했다. (* 원래 new Date는 0부터 시작이라 정확한 날짜로 바꾸려면 -1 처리해줘야하나 여기서는 단순 비교이므로 생략)function solution(date1, date2) { ..
프로그래머스, 자바스크립트) 예산
·
개발/알고리즘(코딩테스트)
예산https://school.programmers.co.kr/learn/courses/30/lessons/12982 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이메모리: 33.7 MB, 시간: 6.48 ms d는 부서별로 신청한 금액이 들어있는 배열, budget은 예산이다. 최종적으로 구해야하는 건 지원할 수 있는 물품의 수. 예산이 적은 팀부터 처리하기 위해 금액을 오름차순으로 정렬한다.각 팀의 요청 금액이 남은 예산을 초과하면 반복을 중단하고 초과하지 않으면 금액을 예산에서 차감하고 결과 값을 증가시킨다.function solution(d, budget) { let result = 0; let ..
프로그래머스, 자바스크립트) 이진 변환 반복하기
·
개발/알고리즘(코딩테스트)
이진 변환 반복하기https://school.programmers.co.kr/learn/courses/30/lessons/70129?language=javascript 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이메모리: 36.6 MB, 시간: 13.11 ms 먼저 필요한 값을 변수로 뽑는다.1이 될때까지 반복 0의 개수는 문자열을 '0' 기준으로 나눈 뒤 공백의 개수를 세어 계산했고이진 변환 횟수는 변환이 한 번 일어날 때마다 1씩 증가시켰다.function solution(s) { //이진 변환 횟수와 변환 과정에서 제거된 0를 배열에 담아라... let num = s; let count = 0; ..
프로그래머스, 자바스크립트) 두 개 뽑아서 더하기
·
개발/알고리즘(코딩테스트)
문제https://school.programmers.co.kr/learn/courses/30/lessons/68644?language=javascript풀이우선 중복을 제거하기 위해 집합을 만든다.배열을 이중반복으로 돌면서 두 가지 수를 모두 뽑아 더해준 후 집합에 넣는다 (중복은 걸러짐)집합을 다시 배열로 변환 후 오름차순으로 정렬한다.function solution(numbers) { const uniqueSums = new Set(); // 중복 제거용 Set const n = numbers.length; for (let i = 0; i a - b);}// 테스트console.log(solution([2, 1, 3, 4, 1])); // [2, 3, 4, 5, 6, 7]conso..
프로그래머스, 자바스크립트) 올바른 괄호
·
개발/알고리즘(코딩테스트)
문제https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이 여는 괄호 '('를 만나면 카운터를 증가닫는 괄호 ')'를 만나면 카운터를 감소.카운터가 음수가 되는 순간, "("가 ")"보다 많다는 것으로 문자열이 잘못 짝지어진 것이다.더이상 체크할 필요없이 false 처리 function solution(s) { //카운트 체크 let count = 0 for (const char of s) { char === '(' ? count++ : count-- // 카운터가 음수가 되는 ..
프로그래머스, 자바스크립트) JadenCase 문자열 만들기
·
개발/알고리즘(코딩테스트)
문제https://school.programmers.co.kr/learn/courses/30/lessons/12951?language=javascript 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이일차 풀이. map을 돌면서 첫글자가 숫자라면 통과 문자라면, 첫 글자는 대문자, 첫 글자 외에 나머지 글자는 소문자처리=> 런타임 에러... 다시 최적화 해보자function solution(s) { let answer = s.split(" ").map((x) => { return isNaN(x[0]) ? x[0].toUpperCase() + x.slice(1)..
프로그래머스, 자바스크립트) 최솟값 만들기
·
개발/알고리즘(코딩테스트)
문제https://school.programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이일차적인 풀이는 우선 최소의 합을 만들기 위해 큰 수, 작은 수로 정렬하여 곱해준걸 합산한다.function solution(A,B){ let answer = 0; //곱한게 최소가 되려면, 큰 수 * 작은 수 const BigA = Math.max(...A) const BigB = Math.max(...B) if(BigA > BigB) { const sortA = A.sort((a,b..
프로그래머스, 자바스크립트) 최댓값과 최솟값
·
개발/알고리즘(코딩테스트)
문제https://school.programmers.co.kr/learn/courses/30/lessons/12939 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이공백을 기준으로 쪼개서 배열을 만든 후, string 숫자들을 number로 형변환한다변환한 숫자들 중 최소 최대를 찾기위해 Math 매서들을 이용한다.function solution(s) { const arr = s.split(" ").map(Number); // 문자열을 숫자로 변환 return `${Math.min(...arr)} ${Math.max(...arr)}`;}