JavaScript 223

18-1 JS 문자열1

- JS는 텍스트 형식의 데이터는 길이에 상관없이 문자열 형태로 저장된다. 문자열은 페이지 인코딩 방식과 상관 없이 항상 UTF-16 형식을 따릅니다. 따옴표 - 문자열은 작은따옴표(' '), 큰따옴표(" "), 백틱(` `)으로 감싸서 표현한다. let single = '작은따옴표'; let double = "큰따옴표"; let backticks = `백틱`; 작은따옴표, 큰따옴표는 기능상 차이가 없다. 그런데 백틱엔 다른 기능이 있다. 표현식을 ${...}로 감싸고 문자열 안에 넣으면 해당 표현식을 문자열 중간에 쉽게 삽입할 수 있다. 이 방식을 템플릿 리터럴(template literal)이라고 한다. function sum(a, b) { return a + b; } console.log(`1 + ..

JS 2022.11.16

17 JS 숫자형

- 숫자형에 대해 공부했는데 일반적으로 2의 53승 이상이거나 -2의 53승 이하로 만 표기가 가능하지만 Bigint를 사용하면 그 이상도 표기가 가능하다. 하지만 공부한 곳에서는 Bigint만 따로 다루기에 오늘 내용에는 없다. 입력 방법 예) let num1 = 123; let num2 = 100000000; 이렇게 입력해도 되지만 num2처럼 0이 많은 숫자는 오류가 나기 쉽다. 그래서 e를 이용해 간단하게 표현할 수 있으며 e 뒤에 양수를 입력하면 숫자만큼 0이 붙고 음수를 입력하면 수만큼 0의 개수가 소수점으로 붙는다. let num2 = 1e8; // 1뒤에 0을 8개 붙임 즉, 1억임 let num3 = 1.23e7; //이렇게 표현하면 1230만을 표현할 수 있다. let num4 = 1e..

JS 2022.11.15

LV0 79 치킨 쿠폰

문제 설명 - 프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다. 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다. 시켜먹은 치킨의 수 chicken이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 chicken은 정수입니다. 0 ≤ chicken ≤ 1,000,000 입출력 예 chicken result 100 11 1,081 120 나만의 풀이 이 문제는 간단한 연산으로 풀었다. 우선 쿠폰의 갯수를 변수로 선언하고 while문을 이용해 매개변수로 주어지는 chicken이 10보다 작을 때까지만 반복하게 한 후 반복문 안에는 치킨은 쿠폰 10개당 한 마..

LV0 78 등수 매기기

문제 설명 - 영어 점수와 수학 점수의 평균 점수를 기준으로 학생들의 등수를 매기려고 합니다. 영어 점수와 수학 점수를 담은 2차원 정수 배열 score가 주어질 때, 영어 점수와 수학 점수의 평균을 기준으로 매긴 등수를 담은 배열을 return하도록 solution 함수를 완성해주세요. 제한사항 0 ≤ score[0], score[1] ≤ 100 1 ≤ score의 길이 ≤ 10 score의 원소 길이는 2입니다. score는 중복된 원소를 갖지 않습니다. 입출력 예 score result [[80, 70], [90, 50], [40, 70], [50, 80]] [1, 2, 4, 3] [[80, 70], [70, 80], [30, 50], [90, 100], [100, 90], [100, 100], [..

16 JS 원시값의 메서드

- 자바스크립트는 원시 값(문자열, 숫자 등)을 마치 객체처럼 다룰 수 있게 해 줍니다. 원시 값에도 객체에서처럼 메서드를 호출할 수 있죠. 하지만 원시 값은 객체가 아니란 것을 상기하도록 합시다. 원시 값: 원시형 값입니다. 원시형의 종류는 문자(string), 숫자(number), bigint, 불린(boolean), 심볼(symbol), null, undefined형으로 총 일곱 가지입니다. 객체: 프로퍼티에 다양한 종류의 값을 저장할 수 있습니다. {name : "John", age : 30}와 같이 대괄호 {}를 사용해 만들 수 있습니다. 자바스크립트에는 여러 종류의 객체가 있는데, 함수도 객체의 일종입니다. 원시 값을 객체처럼 사용하기 자바스크립트 창안자(creator)는 다음과 같은 모순적인..

JS 2022.11.11

LV0 77 로그인 성공?

문제 설명 - 머쓱이는 프로그래머스에 로그인하려고 합니다. 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와 회원들의 정보가 담긴 2차원 배열 db가 주어질 때, 다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요. 아이디와 비밀번호가 모두 일치하는 회원정보가 있으면 "login"을 return합니다. 로그인이 실패했을 때 아이디가 일치하는 회원이 없다면 “fail”를, 아이디는 일치하지만 비밀번호가 일치하는 회원이 없다면 “wrong pw”를 return 합니다. 제한사항 회원들의 아이디는 문자열입니다. 회원들의 아이디는 알파벳 소문자와 숫자로만 이루어져 있습니다. 회원들의 패스워드는 숫자로 구성된 문자열입니다. 회원들의 비밀번호는 같을 수 있..

LV0 76 삼각형의 완성조건(2)

문제 설명 선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다. 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다. 삼각형의 두 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 나머지 한 변이 될 수 있는 정수의 개수를 return하도록 solution 함수를 완성해주세요. 제한 사항 sides의 원소는 자연수입니다. sides의 길이는 2입니다. 1 ≤ sides의 원소 ≤ 1,000 입출력 예 sides result [1, 2] 1 [3, 6] 5 [11, 7] 13 나만의 풀이 이 문제는 처음에는 for문을 이용하여 문제를 풀었다. 먼저 이 문제는 큰 수에 포커스를 맞추어 문제를 진행해야 하는데 sides 매개변수 배열 중 큰 숫자의 index가 어딘..

15 JS 객체를 원시형으로 변환하기

추천하는 것은 아래 링크를 누르셔서 모든 내용을 보는 것입니다. https://ko.javascript.info/object-toprimitive 객체를 원시형으로 변환하기 ko.javascript.info - 객체를 출력하게 되면 자동 원시 값으로 변환이 되다. 예를들어 객체를 더하게 되면 자동으로 원시형으로 변환하고 연산이 이루어진다. 객체는 논리 평가 시 true를 반환합니다. 단 하나의 예외도 없죠. 따라서 객체는 숫자형이나 문자형으로만 형 변환이 일어난다고 생각하시면 됩니다. 숫자형으로의 형 변환은 객체끼리 빼는 연산을 할 때나 수학 관련 함수를 적용할 때 일어납니다. 객체 Date끼리 차감하면(date1 - date2) 두 날짜의 시간 차이가 반환됩니다. Date에 대해선 Date 객체와 날짜..

JS 2022.11.10

LV0 74 직사각형 넓이 구하기

문제 설명 - 2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots가 매개변수로 주어질 때, 직사각형의 넓이를 return 하도록 solution 함수를 완성해보세요. 제한사항 dots의 길이 = 4 dots의 원소의 길이 = 2 -256 a[0]))]; let Y = [...new Set(dots.map(a => a[1]))]; return (Math.abs(X[0] - X[1])) * (Math.abs(Y[0] - Y[1])); }