IT Study 59

[JS] 전개문법(+배열 복사, rest 파라미터), Splice() 메서드

✅ splice 배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경 array.splice(start, deleteCount, item1, item2, .. ) start: 배열의 변경을 시작할 인덱스 - 배열의 길이보다 큰 값이 들어가면 배열 길이로 설정된다. const arr1 = [1, 4]; const arr2 = [2, 3]; arr1.splice(4, 0, arr2); // arr1 뒤에 arr2를 넣는다. console.log(arr1); // [1, 4, [2, 3]] - 음수인 경우 배열 끝에서부터 센다. const arr1 = [1, 4]; const arr2 = [2, 3]; arr1.splice(-1, 0, arr2); // arr1[-1]번째 뒤에 ar..

IT Study/JavaScript 2023.08.25

[JS] 🐰기록하고 보기 위한 '놓치기 쉬운 부분들' (match, 인스턴스, random, 원시값-객체)_엘리스2주차

✅ match 메서드 문자열.match(찾을 단어) match() 메서드는 찾을 단어를 찾으면, '찾을 단어' 자체를 반환 let txt = "What I love it" txt.match("i") // 'i'를 출력 ➕ 정규표현식 사용 "/i"플래그는 대소문자 구분 허용하지 않고 문자열 검색 let txt = "What I love it"; console.log(txt.match(/i/i)); // [ 'I', index: 5, input: 'What I love it', groups: undefined ] 출력 "g"는 글로벌 플래그로 문자열에 해당하는 부분을 전부 배열에 넣기에, "/gi"는 대소문자 구분 허용하지 않고 모든 문자열을 검색해서 반환 let txt = "What I love it"; ..

IT Study/JavaScript 2023.08.24

[JS] New 생성자

function Car(make, model, year) { this.make = make; this.model = model; this.year = year; } var mycar = Car("Eagle", "Talon TSi", 1993); console.log(mycar.make); // TypeError: Cannot read properties of undefined (reading 'make') at Object TypeError 객체나 변수의 값이 정의되지 않은 상태에서 프로퍼티를 참조할 때 발생하는 에러 -> Car 함수를 활용해 mycar에 할당한 것으로 보이지만, mycar에서는 Car 내부에 있는 .make, .model, .year과 같은 프로퍼티를 참조할 수가 없음 function..

IT Study/JavaScript 2023.08.23

JavaScript의 입출력 (readline 모듈, fs 모듈) +다양한 방식의 반복문 출력

JavaScript의 입출력 1. readline 모듈 readline은 따로 설치가 필요없는 내장 모듈이며, 한 번에 한 줄씩 읽음 모듈을 불러오기 위해서는 readline(모듈 이름)의 형태 # 모듈 불러오기 const readline = require("readline") # 객체 만들기 const rl = readline.createTnterface( { input: prodess.stdin, output: process.stdout, }); const는 선언한 변수가 상수임을 의미 값 변경 불가능 2. 메소드 1) on 메소드 이벤트 발생할 때, 실행할 동작을 지정 on(사용할 이벤트 명, 콜백함수) rl.on("line", function(x) { console.log(x) }).on("clo..

IT Study/JavaScript 2023.08.23

[이것이코딩테스트다/이코테] CH7 이진탐색 python (+연습문제, 예시답안)

이진 탐색 알고리즘 정렬되어 있는 리스트에서 탐색 범위 좁히면서 하나씩 → 시작점, 끝점, 중간점을 이용하여 탐색 범위 좁혀나감 단계마다 탐색 범위를 2로 나누는 것과 동일해서 연산 횟수는 log2N에 비례 → 시간복잡도: O(logN) 활용 파이썬 라이브러리 from bisect import bisect_left, bisect_right bisect_left(a, x) : 배열 a에 v를 삽입할 가장 왼쪽 인덱스 반환 bisect_right(a, x) : 배열 a에 v를 삽입할 가장 오른쪽 인덱스 반환 → 값이 특정 범위에 속하는 데이터 개수를 구할 수 있음. 파라메트릭 서치 최적화 문제를 결정문제(yes or no)로 바꾸어 해결하는 기법 ex. 특정한 조건을 만족하는 가장 알맞은 값을 빠르게 찾는 ..

[백준] 2751번 수 정렬하기2(정렬)_python (+시도과정, 예시답안)

수 정렬하기2 분류: 정렬 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 5 5 4 3 2 1 예제 출력 1 1 2 3 4 5 💡문제 해결 IDEA 1) 수는 중복되지 않기 때문에 계수 정렬은 x 2) 퀵 정렬로 시도 -> 메모리 초과 3) 삽입 정렬로 시도 -> 시간 초과 4) 계수 정렬로 시도 -> 걍 틀림.... 5) 퀵 정렬을 다시 정리 -> 약 25%까지 가다가..

[백준] 2583번 영역 구하기(DFS/BFS)_python (+시도과정, 예시답안)

영역 구하기 분류: 그래프 탐색 이론 (DFS/BFS) 문제 눈금의 간격이 1인 M×N(M,N≤100)크기의 모눈종이가 있다. 이 모눈종이 위에 눈금에 맞추어 K개의 직사각형을 그릴 때, 이들 K개의 직사각형의 내부를 제외한 나머지 부분이 몇 개의 분리된 영역으로 나누어진다. 예를 들어 M=5, N=7 인 모눈종이 위에 과 같이 직사각형 3개를 그렸다면, 그 나머지 영역은 와 같이 3개의 분리된 영역으로 나누어지게 된다. 와 같이 분리된 세 영역의 넓이는 각각 1, 7, 13이 된다. M, N과 K 그리고 K개의 직사각형의 좌표가 주어질 때, K개의 직사각형 내부를 제외한 나머지 부분이 몇 개의 분리된 영역으로 나누어지는지, 그리고 분리된 각 영역의 넓이가 얼마인지를 구하여 이를 출력하는 프로그램을 작성..

[백준] 11047번 동전0(그리디)_python (+시도과정, 예시답안)

동전0 분류: 그리디 알고리즘 문제 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) 출력 첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다. 예제 입력 1 10 4200 1 5 10 50 100 500 1000 5000 10000 50000 예제 출력 1 6 #1차 시도 N,..

[이것이코딩테스트다] CH3. 그리디 알고리즘 python (+연습문제, 예시답안)

그리디 알고리즘 탐욕 알고리즘이라고도 부름 "현재 상황에서 지금 당장 좋은 것만 고른다" -> 최적의 해를 보장할 수 없을 때가 많음 ex. 거스름돈 문제 [500, 100, 50, 10] => 가장 큰 화폐단위부터 Q. 가장 큰 화폐 단위부터 돈을 거슬러 주는 것이 최적해를 보장하는 이유? (정당성 분석) A. 가지고 있는 동전 중 큰 단위가 항상 작은 단위의 배수이기에 작은 단위의 동전을 종합해 다른해가 나올 수 없기 때문 그리디 문제에서는 문제 풀이를 위한 최소한의 아이디어를 떠올리고 이것이 정당한지 검토할 수 있어야 함 문제1. 곱하기 혹은 더하기 문제: 각 자리 숫자(0~9)로만 이루어진 문자열 S가 주어졌을 때, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 'x' 혹은 '+' ..

반응형