5장 표현식과 문 📂5장 표현식과 문 값 : 식이 평가되어 생성된 결과 값의 특징 모든 값은 데이터 타입을 가짐. 메모리에 비트(2진수)의 나열로 저장. 저장된 값은 데이터 타입에 따라 다르게 해석될 가능성 있음. 예) 0100 0001를 숫자로 해석하면 65, 문자로 해석하면 'A' 변수에 할당되는 것은 값임. var sum = 10 + 20 ; //30 10 + 20(식)이 평가되어 값 30을 생성함. 변수 sum이 기억하는 메모리 공간에 저장되는 것은 값(30)임. 10+20이 아님. 🔎 용어 정리 평가 : 식을 해석해서 값을 생성 하거나 참조 하는일 참조 : 변수에 저장된 값을 읽어 들이는 것 값 생성 방법 - 리터럴 : 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법 💻 자바스크립트 엔진 : 런타임에 리터럴..
썸네일 4장 변수 📂4장 변수 변수? 변수의 정의 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 그 메모리 공간을 식별하기 위해 붙인 이름 🔎 용어 정리 할당(대입, 저장) : 변수에 값을 저장하는 것 참조 : 변수에 저장된 값을 읽어 들이는 것 변수의 필요성 기억하고 싶은 값을 메모리에 저장하고, 저장된 값을 읽어 들여 재사용하기 위해 변수 사용 식별자 식별자 : 메모리 상에 존재하는 어떤 값을 식별할 수 있는 이름 식별자는 메모리 주소를 기억 (값을 기억하는 것이 아님.) 변수 선언 var age; // 변수 선언 💻 var 키워드 변수 선언시 자바스크립트 엔진이 하는 일 선언 : 변수 이름 등록해서 자바스크립트 엔진에 변수의 존재를 알림. 초기화 : 값을 저장하기 위한 메모리 공간 확보, 암묵적으로 undefi..
[JS] 문제 31번 자바스크립트 자료형의 복잡도 다음 배열 내장함수의 시간 복잡도가 O(1)이 아닌 것을 모두 고르시오. 1) arr[i] 2) arr.push(5) 3) arr.slice() 4) arr.pop() 5) arr.includes(5) 3. arr.slice() begin부터 end(end 미포함)까지 복사본을 새로운 배열 객체로 반환한다. 그렇기 때문에 배열의 길이에 따라 실행 시간이 길어지기 때문에 시간 복잡도는 O(n)이다. 5. arr.includes(5) includes() 메서드는 배열이 특정 요소를 포함하고 있는지 판별한다. includes(5)는 arr의 배열 요소를 처음부터 5가 나올때까지 실행 만일 5가 배열의 끝에 있다면 배열의 길이만큼 실행 시간이 길어지기 때문에 시간 복잡도는 O(n)이다. 이해가 가지 않는다면 B..
[JS] 문제37-반장선거 중복 개수 찾기/set 문제 - 새 학기를 맞아 호준이네 반은 반장 선거를 하기로 했습니다. 그런데 표를 하나씩 개표하는 과정이 너무 번거롭게 느껴진 당신은 학생들이 뽑은 후보들을 입력받으면 뽑힌 학생의 이름과 받은 표 수를 출력하는 프로그램을 작성하기로 하였습니다. - 입력 : 원범 원범 혜원 혜원 혜원 혜원 유진 유진 - 출력 : 혜원(이)가 총 4표로 반장이 되었습니다. 풀이 1. 중복 없는 값만 가지는 set을 이용하여 유일한 값을 뽑아내서 (변수명 : set) 배열로 만든다. (변수명 : setArr) 2. input값과 유일한 값인 setArr와 비교하여 같으면 카운팅한다. setArr[0] === arr[0] 은 "원범"이다. 값이 같으므로 count =1 setArr[0] === arr[2] 는 "원범" != "..
썸네일 [JS] 1546 평균 https://www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 문제 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다. 이를 평균 내는 프로그램을 작성하시오. 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다. 첫째 줄에 새로운 평균을 출..
썸네일 [JS] 10818 최소,최대 for문/Math 메서드 2022.09.06 10818 최소,최대 https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 문제 N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오. 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. 첫째 줄에 ..
썸네일 [JS] 3003 킹, 퀸, 룩, 비숍, 나이트, 폰 2022.08.25 https://www.acmicpc.net/problem/3003 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다. www.acmicpc.net 3003 킹, 퀸, 룩, 비숍, 나이트, 폰 문제 체스는 총 16개의 피스를 사용하며, 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개로 구성.흰색 피스의 개수가 주어졌을 때, 몇 개가 더 필요하거나 덜어야되는지 코드 작성. 검정색 피스는 모두 있고, 흰색 피스는 개수가 올바르지 않음. 첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 ..
썸네일 [JS] 1110 더하기 사이클 문자열 / 숫자 ㅈ2022.08.24 https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 1110 더하기 사이클 문제 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 ..
썸네일 [JS] 2438 별 찍기-1 2438 별 찍기-1 https://www.acmicpc.net/problem/2438 2438번: 별 찍기 - 1 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 www.acmicpc.net 문제 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 풀이 const fs = require('fs'); const inputData = fs.readFileSync(0,'utf8').toString() const n = parseInt(inputData) result = '' // 빈 문자열을 두고 for(let i = 1 ; i < n+1 ; ..
썸네일 [JS] 11022번 A+N -8 11022번 A+B -8 https://www.acmicpc.net/problem/11022 11022번: A+B - 8 각 테스트 케이스마다 "Case #x: A + B = C" 형식으로 출력한다. x는 테스트 케이스 번호이고 1부터 시작하며, C는 A+B이다. www.acmicpc.net 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 각 테스트 케이스마다 "Case #x: A + B = C" 형식으로 출력한다. x는 테스트 케이스 번호이고 1부터 시작하며, C는 A+B이다. 풀이 벡터를 이용하여 출력한다. cons..
썸네일 [JS] 2739 구구단 / 증감연산자 i++과 ++i 의 차이?! 2022.08.12 2739번 구구단 https://www.acmicpc.net/problem/2739 2739번: 구구단 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. www.acmicpc.net 문제 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. 첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 9보다 작거나 같다. 출력형식과 같게 N1부터 N9까지 출력한다. 풀이 const fs = require('fs'); const inputData = fs.readFileSync(0,'utf8').toString() ; let num = +inputData[0]; // 변수값이 업데이트가 되게 l..
썸네일 [JS] 10430번 나머지 / Number보다 parseInt를 더 권고하는 이유 10430번 나머지 https://www.acmicpc.net/problem/10430 10430번: 나머지 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) www.acmicpc.net 문제 (A+B)%C는 ((A%C) + (B%C))%C 와 같을까? (A×B)%C는 ((A%C) × (B%C))%C 와 같을까? 세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오. 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) 첫째 줄에 (A+B)%C, 둘째 줄에 ((A%C) + (B%C))%C, 셋째 줄에 (A×B)%C, 넷째 줄에 ((A%C) × (B%C))%C를 출력한다. 풀이 const fs = requi..