Language 10

호이스팅

핵심키워드 : 호이스팅, 스코프 , 변수의 선언, 메모리 할당, 변수 초기화 본 포스트에서는 스코프의 개념보다 호이스팅이라는 기능 자체에 초점을 다뤄서 이야기 해볼까 한다. 변수의 선언, 메모리할당, 변수의 초기화의 개념이 없다면 글을 이해하는게 힘들 수 있음으로 공부 후 읽기를 권장한다. 호이스팅이란? MDN공식문서에 적혀진 내용은 다음과 같다. JavaScript에서 호이스팅(hoisting)이란, 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미합니다. var로 선언한 변수의 경우 호이스팅 시 undefined로 변수를 초기화합니다. 반면 let과 const로 선언한 변수의 경우 호이스팅 시 변수를 초기화하지 않습니다. 즉, var은 변수객체에 변수를 등록하는 동시에 un..

Language/JavaScript 2022.12.17

JS / == 과 ===차이

▶참조형 변수같은 경우는 비교연산을 수행시 무조건 참조값을 비교하게 됩니다. [] == [] // false [] === [] //false 다음과 같은 결과가 나오는 이유는 두 배열의 참조 값이 다르기 때문에 두 배열의 생긴 모습이 같다고 하더라도 항상 False가 나오게 됩니다. ▶ == ==연산은 자료형이 다를 경우 자동으로 타입을 같게만들어준 뒤 비교합니다. ex) 1 == '1' // 결과값 : true ▶ === === 연산은 엄격한 비교입니다. 따라서 형변환 없이 비교하여 같으면 true 다르면 false를 리턴합니다. ex) 1 === '1' //fasle

Language/JavaScript 2022.12.04

Js의 깊은 복사 얕은 복사

1. const answer = Array(n).fill(Array(m).fill(0)) //얕은복사 2. const answer = Array(n).fill().map(()=>(Array(m).fill(0))) //깊은 복사 행열이 n,m이고 0으로 찬 2차원 배열이 나오는데 1번은 Array(m).fill(0)의 참조변수 3개가 복사된 형태이고 2번은 각각의 행마다 배열이 생성 된 것이다.(1번은 하나의 숫자를 바꾸면 전체 행이 변경되게 된다.즉, 각 행에 존재하는 배열이 다 서로 같은 주소를 가지고 있다.) 아직 js에 익숙하지 않아서 쉬운 실수를 반복하는 하게 된다.

Language/JavaScript 2022.11.26

PS시 유용한 Python 메소드

1. zfill 나는 외우기 쉽게 zero fill이라고 외웠다. 숫자를 1 2 3 이 아니라 떄로는 결과에따라 01 02 03 이런식으로 출력해야 할 경우가 발생하는데 이때 사용하기 쉬운게 zfill이다. '123'.zfill(5) #출력결과 : 00123 이런식으로 매개변수 개수만큼 zero가 채워져서 출력된다. 이때 기존 문자열길이보다 매개변수가 작으면 아무일도 일어나지않는다. 2.rjust zfill과 비슷하지만 0 이아닌 원하는 문자를 넣을 수 있다. 두번째 매개변수에 0대신원하는 문자를 넣으면 된다. 예를 들어 rjust로 zfill과 똑같은 효과를 내고싶다면 두번째 매개변수에 '0' 을 넣으면된다

Language/python 2022.11.26

JS정규표현식

● 파이썬 정규표현식과 문자열을 찾기위한 표현은 같다. 다만 사용법이 조금달라서 거기에대해서 적어보겠다. ● 문자열.match 메소드와 // 표현과 함께 사용한다. ● 예제) 문자열에서 1이 몇개있는지 찾는 예시 let string = '12312312313' string.match(/1/g).length ● 주석사이에 문자열을 넣으면 찾는 문자열을 검색할 수 있다. ex) /1/ => 1을 찾고싶은경우 ● flag패턴 -> 생략가능하지만 쓰면 편하게 쓸 수 있는기능들이 있다. /g => 일치하는 모든것들을 찾아 배열을리턴해준다. /i => 대소문자 구분을 무시한다. 한번에쓰려면 /gi 이런식으로 표현할 수 있다. 이외에도 여러패턴들이 존재함. ● 원하지 않는 문자열 제외를 위한 기호 ^ ☞정상적인 해시..

Language/JavaScript 2022.11.14

PS시 유용한 JS메소드

1. 배열에 값 넣고 빼기 ●뺴기 Array.pop() -> 마지막 값 빼기 Array.shift() - > 시작값 빼기 ●넣기 Array.push(v) -> Array의 끝에 v넣기 Array.unshift(v) -> Array의 시작에 v넣기 2. 배열 값 조작 - splice ● 매개변수 1개 의미->Array.splice(-1) or Array.splice(3) 시작위치 (음수이면 Array.length + 값 과 같다.) 해당 인덱스부터 배열의 끝까지 잘라내고 잘라낸 부분을 리턴한다. // 이때 Array.length 보다 값이크면 빈배열을 리턴하고 아무것도 자르지않는다. (-일때 절대값이 Array.length보다 크거나 같으면 배열전체를 잘라낸다. ) ●매개변수 2개 의미 -> Array.s..

Language/JavaScript 2022.11.08

PS시 유용한 JS문법

1. range() : 파이썬에서 유용하다고 생각했던 range를 다음과 같이 작성하면 비슷하게 사용할 수 있다. const range = n => [...Array(n).keys()] const range = (n,m) =>[...Array(m).keys()].slice(n) # range(1,10) 처럼사용가능 n이 3일경우 [0,1,2]를 리턴한다. 2. for in(키), for of(값) ● for in (key값에 접근) for (i in Obj) {} -> 이런식으로 in을쓰면 key값에다가 문자열을 치환하여 i에 들어온다.(따라서 obj에 배열이 들어가면 배열에서는 key가 숫자임으로 '0', '1' ... 이런순서로 나오게된다. ) ● for of (순서대로 value 값에 접근) Arr..

Language/JavaScript 2022.11.07

쉽게 배우는 정규표현식(Python)

it융합응용 수업을 들으며 문자열을 편집하는 작업이 많아 정규표현식이라는 것이 있는것을 알게되었다. 정규표현식은 여러가지언어에서 공통적으로 쓰인다고 하여 이번기회에 학습한다. 특징 => 원하는 조건의 문자열이 있는지 빠르게 확인할 수 있다.(변경도 가능) 1. import re 정규표현식을 사용할 수 있게 import 한다. 2. re.search 와 re.match가있다. re.search => 처음부터 끝까지 비교 re.match => 처음부터 비교하다가 없으면 바로 없다고 리턴함 (띄어쓰기나 패턴이 안나타나는경우) ●예시 re.match('a', "ab") 는 성공하지만 re.match('b', "ab") 는 None =>a 검사하다가 b와 다르자 바론None을 리턴하는 것임 위의 예시에서 sear..

Language/python 2022.10.27

파이썬 Counter 사용법

https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2018 KAKAO BLIND RECRUITMENT 1차 코딩테스트에 나왔던 문제에서 Counter함수를 쓰면 쉽게 풀리는 문제가 있어 정리해 보았다. 교집합과 합집합의 크기비율을 찾는 문제인데 집합문제임으로 set자료형을 생각하였는데 중복을 허용하였기 때문에 set은 사용할 수 없었다. 위 문제의 경우 &(and) 와 |(or) 연산을 사용하면 쉽게 해결되는 문제였다. 기본사용법 'hihello..

Language/python 2022.10.25