Coding

개요 원시 타입의 값, 즉 원시 값은 변경 불가능한 값(immutable value)이다. 이에 비해 객체(참조) 타입의 값, 즉 객체는 변경 가능한 값(mutable value)이다. 자바스크립트는 원시 타입인 문자열 타입을 제공한다. 원시 값을 변수에 할당하면 변수(확보된 메모리 공간)에는 실제 값이 저장된다. 이에 비해 객체를 변수에 할당하면 변수(확보된 메모리 공간)에는 참조 값이 저장된다. 원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 저장된다. 이를 값에 의한 전달(pass by value)이라 한다. 이에 비해 객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조 값이 복사되어 전달된다. 이를 참조에 의한 전달(pass by reference)이라 한다. 원시 타..
개요 비교 연산자는 좌항과 우항의 피연산자를 비교한 다음 그 결과를 불리언 값으로 반환한다. 비교 연산자는 if 문이나 for 문과 같은 제어문의 조건식에서 주로 사용한다. 동등 비교 연산자(==)와 일치 비교 연산자(===)는 이 비교 연산자에 속해있다. 동등 / 일치 비교 연산자 동등 비교(loose equality) 연산자와 일치 비교(strict equality) 연산자는 좌항과 우항의 피연산자가 같은 값으로 평가되는지 비교해 불리언 값을 반환한다. 하지만 비교하는 엄격성의 정도가 다르다. 동등 비교 연산자는 느슨한 비교를 하지만 일치 비교 연산자는 엄격한 비교를 한다. 비교 연산자 의미 사례 설명 부수효과 == 동등 비교 x == y x와 y의 값이 같음 X === 일치 비교 x === y x와..
0. 알고있으면 도움되는 사전지식 console.log(Boolean(" ")); // true console.log(isNaN(" ")); // false console.log(Number(" ")); // >>> 0 console.log(typeof " ") // string console.log(Boolean("")) // >>> false console.log(isNaN("")); // >>> false console.log(Number("")); // 0 console.log(typeof "") // string console.log(Boolean([])); // >>> true console.log(isNaN([])); // >>> false console.log(Number([])); // ..
1. 더하기 사이클 (백준 1110번) 간단한 문제였음. 그냥 문제 설명 그대로 식 작성함. import sys N = int(sys.stdin.readline()) sum = 0 count = 0 temp = N while True: a = temp//10 b = temp%10 sum = a + b temp = b*10 + sum%10 count+=1 if temp == N: break print(count) 2. 스택 (백준 10828번) 식은 맞는데 시간제한 걸렸던 문제. 해결방법은: input이 아니라 sys.stdin.readline() 썼다. pop 은 리스트 변형과 동시에 뽑은 값을 리턴한다. import sys N = int(sys.stdin.readline()) array = [] for..
※주의: 본 글은 알고리즘, 자료구조 학습 경험이 전무한 사람이 쓰는 글입니다. 알고리즘은 작동 시 걸리는 시간과 메모리가 중요한 요소라고 한다. 그런 것을 고려하기도 전에 페어 프로그래밍 때는 문제 파악하기도 어려웠다... 그나마 내가 이해하고 시간초과가 안된 것들만 가져와 보았다. 나머지 문제들은 혼자 낑낑 풀어본 후에 정리할 예정. 1. 설탕 배달(백준 2839번) 분명 페어 프로그래밍 때는 이해가 됐었는데, 다 지우고 복습하면서 혼자 안되서 낑낑거리다가 어쩌다가 됐다. # 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. # 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. # 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. #..
1. 구조 분해 할당 Destructing assignment 구조 분해 할당 구문은 배열이나 객체의 속성을 분해해서 그 값을 변수에 담을 수 있게 하는 표현식 1-1. 배열 구조 분해 1-2. 배열 구조 분해: 기본값 한 변수가 기본 값이 없을 경우(짝이 안 맞는 경우) 기본값 없는 변수에 할당한 값만 할당되고, 나머지(a,b)는 새로 변경되지 않고 기존에 할당된 1,2가 할당된다. let [a=3, b=4, c=5] = [1,2] console.log(a); // 1 console.log(b); // 2 console.log(c); // 5 1-3. 배열 구조 분해: 일부 반환값 무시 1-4. 배열 구조 분해: 바꿔치기 let a = 1 let b = 2 let [c,d] = [b,a] console..
참고로 일반 문자열과 Array, generator는 iterable한 객체이다. Iterator만의 동일한 메서드 사용 가능. 메모장에 있던 거 옮겨 적다보니 더럽게 작성이 됐다. 최대한 쉽게 설명하려고 해봄. 그러다보니 본래 의미가 달라진 경우도 있는 것 같아 감안 부탁. 0. 문자열 특정 위치에 접근 let desc = '안녕하세요.'; console.log( desc[2], ); 주의! 문자열은 배열과 다르게 한 글자만 바꾸는 것은 허용되지 않음. 새로 할당해도 기존 값 안바뀜 desc[4] = '용'; console.log(desc); >>> 안녕하세요. 1. Array.indexof ★★★ str.indexOf(text, index) ★★★ : 문자를 인수로 받아 몇 번째[인덱스]에 위치하는지..
1. 딕셔너리를 짧게 만들어보기! - 객체 리터럴 기존에는 객체(딕셔너리)를 생성할 때, 필드명과 대입할 변수명이 같은 상황에서 다음과 같이 코드를 작성하였습니다. [기존 방식] var name = "스파르타"; var job = "developer"; var user = { name: name, job: job } console.log(user); //{name: "스파르타", job: "developer"} [최신 방식] var name = "스파르타"; var job = "developer"; var user = { name, job } console.log(user); //{name: "스파르타", job: "developer"} - **key: value** 형태에서 단순히 변수명만 작성해주면 ..
1. 화살표 함수 만들어보기(과정) ★★★ 화살표 함수(arrow function) ★★★ 지금까지 배웠던 함수를 보다 간결하게 작성할 수 있음. 함수의 기본 형태 let add = funciton(num1, num2){return num1 + num2;} ① function 이라는 단어가 사라지고 매개변수괄호 뒤에 화살표( '=>' ) 가 생김 ex) let add = (num1, num2) => {return num1 + num2;} ② return 문은 중괄호가 아닌 일반 괄호로 바꿀 수 있음. (return 생략되고 중괄호가 일반괄호로 바뀜) ex) let add = (num1, num2) => (num1 + num2;) ③ return 문(return문 뿐만 아니라 실행할 중괄호 안의 함수가)이..
# arr.sort([compareFunction]) 파라미터 compareFunction 정렬 순서를 정의하는 함수 이 값이 생략되면( arr.sort(생략) ) 배열의 element들은 문자열로 취급되어, 유니코드 값 순서대로 정렬됩니다. (숫자열 오름차순 특히 주의!!) 파라미터 생략결과 예시) // 문자열 const arr = ["banana", "b", "bob"]; arr.sort() console.log(arr) // >>> [ 'b', 'banana', 'bob' ] // 숫자열 (주의!!!! 숫자열 파라미터 설정해 줘야 하는 이유 볼 수 있음) const arr2 = [1, 10, 3, 13, 4]; arr2.sort() console.log(arr2) // >>> [ 1, 10, 13,..
olimjo
'Coding' 카테고리의 글 목록 (4 Page)