본문 바로가기
Problem Solving

2023.02.22 ~ 2023.02.25 코딩테스트 이론 정리

by 청량리 물냉면 2023. 3. 7.
반응형

[프로그래머스 | 파이썬 / 자바스크립트] 안전지대(코딩테스트 입문/ level 0)

🐥 자바스크립트 | forEach()

형태: arr.forEach((처리할 현재 요소, 처리할 현재 요소의 인덱스, forEach를 호출한 배열) => {각 요소에 대해 실행할 함수})

 

🐥 자바스크립트 | some()

배열 안의 요소가 주어진 판별 함수를 적어도 하나라도 통과하면 true, 그렇지 않으면 false를 반환한다.

callbak 함수는 3가지 인자를 갖는다.

  • element 처리할 배열 내 현재 요소
  • index 처리할 현재 요소의 인덱스
  • array some()을 호출한 배열

 

🐥 자바스크립트 | 느낌표 두개 (Double Exclamation Operation)

object를 boolean 형으로 변환하는 연산자

[undefined, "", 0] 일 경우 결과는 false, 그 외의 결과는 모두 true

  • !! 0 –> false
  • !! null –> false
  • !! undefined –> false
  • !! 48 –> true
  • !! “hello” –> true
  • !! [1, 2, 3] –> true

출처: https://www.codingem.com/javascript-double-exclamation-operator/

 

The Double Exclamation Operator (!!) in JavaScript - codingem.com

JavaScript double exclamation operator (!!) converts any object to a boolean value. For example !!0 --> false and !!1 --> true.

www.codingem.com

 

🐥 자바스크립트 | ?. (optional chaining)

  • 프로퍼티가 없는 중첩 객체를 에러 없이 안전하게 접근하기 위한 문법 ☞ 즉, 존재하지 않는 요소(null, undefined)에 접근해 정보를 가져오려 할 때 오류가 발생하는 문제를 해결하기 위한 문법
  • ?.'앞’의 평가 대상이 undefined나 null이면 평가를 멈추고 undefined를 반환
//기존 방법
let nestedProp = obj.first && obj.first.second;
//optional chaining
let nestedProp = obj.first?.second;
  • obj.first?.second : obj.first가 존재하면 obj.first.second을 반환, 그렇지 않으면 undefined를 반환함

참고

https://ko.javascript.info/optional-chaining


[프로그래머스 | 파이썬 / 자바스크립트] 안전지대(코딩테스트 입문/ level 0)

🐍 파이썬 | filter()

여러 개의 데이터로 중 원하는 조건의 데이터를 추려낼 때 사용하는 파이썬 내장함수

기본문법: filter(조건 함수, 순회 가능한 데이터)

참고: https://www.daleseo.com/python-filter/


[프로그래머스 | 파이썬 / 자바스크립트] 둘만의 암호(연습문제/ level 1)

🐍 파이썬 | string.ascii_lowercase

string 모듈, 알파벳 소문자 출력

from string import ascii_lowercase

a_to_z = set(ascii_lowercase)	#원소의 순서는 랜덤
print(a_to_z)
#{'u', 'w', 'y', 'o', 'z', 'k', 'n', 'm', 'r', 'a', 'c', 'j', 'i', 't', 'g', 'f', 's', 'b', 'q', 'l', 'x', 'e', 'p', 'd', 'v', 'h'}

[프로그래머스 | 파이썬 / 자바스크립트] 모음제거(코딩테스트 입문/ level 0)

🐥 자바스크립트 | Array.from()
유사 배열 객체(array-like object)나 반복 가능한 객체(iterable object)를 얕게 복사해 새로운 Array 객체를 생성하는 메서드


[프로그래머스 | 파이썬 / 자바스크립트] 삼각형의 완성조건 (2)(코딩테스트 입문/ level 0)

🐥 자바스크립트 | Math.max(), Max.min() 메소드에 매개변수로 배열을 넣기

Math.max(), Math.min() 메소드에 매개변수로 배열을 전달할 경우, 배열 객체를 단일항목으로 인식하기 때문에 NaN이 반환된다.

const array = [7, 11];
console.log(Math.min(array)); // NaN

... 연산자를 이용하면 올바른 min, max값을 구할 수 있다.

const array = [7, 11];
console.log(Math.min(...array)); // 7

 

출처: https://sisiblog.tistory.com/256


[프로그래머스 | 파이썬 / 자바스크립트] 배열 뒤집기(코딩테스트 입문/ level 0)

🐍 파이썬 | reverse() vs reversed()

  • reverse() : 반환값이 없다
  • reversed() : 반환값 존재, 리스트로 출력하고 싶으면 list()함수를 사용해 주어야 한다.

🐥 자바스크립트 | reverse()

배열의 순서를 뒤집는 메서드


[프로그래머스 | 파이썬 / 자바스크립트] 카드 뭉치(연습문제/ level 1)

🐥 자바스크립트 | shift(), unshift()

  • shift() : 배열에서 첫 번째 요소를 제거하고, 제거된 요소를 반환한다. 원본배열의 길이변화가 일어난다.
  • unshift() : 새로운 요소를 배열의 맨 앞쪽에 추가하고, 새로운 길이를 반환한다.

[프로그래머스 | 파이썬 / 자바스크립트] 할인 행사(연습문제/ level 2)

🐍 파이썬 | Counter() 클래스

중복된 원소가 들어있는 배열을 매개변수로 넘기면 각 원소가 몇 개 들어있는지 저장된 객체를 얻을 수 있다.

Counter(["hi", "hey", "hi", "hi", "hello", "hey"])
// Counter({'hi': 3, 'hey': 2, 'hello': 1})

출처: https://www.daleseo.com/python-collections-counter/


[프로그래머스 | 파이썬 / 자바스크립트] 문자 반복 출력하기(코딩테스트 입문/ level 0)

🐥 자바스크립트 | repeat()

str.repeat(count);
  • 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열을 반환하는 메서드
  • 문자열 곱하기에 사용 가능

[프로그래머스 | 파이썬 / 자바스크립트] 배열 회전시키기(코딩테스트 입문/ level 0)

🐥 자바스크립트 | 배열에 요소를 추가/제거하는 메서드

  • 🛑 원본 배열의 변형 발생
  • push() : 배열의 끝에 하나 이상의 새로운 요소를 추가한 후, 배열의 새로운 길이를 반환
  • pop() : 배열의 마지막 요소를 제거하고, 그 요소를 반환
  • unshift() : 배열의 첫 번째 자리에 새로운 요소를 추가하고, 배열의 새로운 길이를 반환
  • shift() : 배열의 첫 번째 요소를 제거하고, 제거된 요소를 반환

🐥 자바스크립트 | 배열 원소 잇기

[...numbers, ...numbers] 로 배열을 이을 수 있다. (여기서 numbers는 배열 이름)

[numbers, numbers]의 경우 배열의 원소로 배열이 들어가 이차원 배열이 된다.


[프로그래머스 | 파이썬 / 자바스크립트] 다항식 더하기(코딩테스트 입문/ level 0)

🐥 자바스크립트 |  조건문에서 논리연산자(&&, ||) 사용

a AND b
a, b 둘 모두 true일 때 true
a가 true이면 b도 true인지 확인해야 하므로 b문장이 실행
a가 true일때 b를 수행하기 위해 사용
let arr = [43, 64, 77, 50, 1];
arr.map(num => 
   (num % 2 == 0) && console.log(num + ": 2의 배수") 
);​

a OR b
a, b 둘 중 하나만 true이면 true
a가 true이면 b를 확인할 필요없이 true이므로 b를 수행하지 않고 건너뛴다.
a가 false이면 b를 확인할 필요가 있으므로 b를 수행한다.
a가 false일 때 b를 수행하기 위해 사용
let arr = [43, 64, 77, 50, 1];
arr.map(num => 
   (num % 2 == 0) || console.log(num + ": 2의 배수가 아니다") 
);



참고한 블로그: https://tinyurl.com/2lt5dajy


[프로그래머스 | 파이썬 / 자바스크립트] 피로도(완전탐색/ level 2)

🐍 파이썬 | 순열

itertools.permutations(iterable, r=None)
  • itertools 모듈
  • 서로 다른 n개 원소 중 r개를 순서를 고려해 나열하는 경우의 수

🐥 자바스크립트 | 자바스크립트 블록 스코프

https://poiemaweb.com/es6-block-scope

 

let, const | PoiemaWeb

ES5까지 변수를 선언할 수 있는 유일한 방법은 var 키워드를 사용하는 것이었다. var 키워드로 선언된 변수는 아래와 같은 특징이 있다. 이는 다른 언어와는 다른 특징으로 주의를 기울이지 않으면

poiemaweb.com

 

🐥 자바스크립트 | 자바스크립트 배열 선언

https://miiingo.tistory.com/272

 

[Node.js] Javascript: 지정한 길이에 맞게 배열을 선언하고 값을 초기화하는 방법들

배열 선언 및 초기화 방법 길이가 N인 배열 arr을 선언하면서 동시에 값을 초기화하고 싶은 경우 CASE 1: for문 이용 const N = 5; // 길이 N을 5라고 가정 let arr = []; for(let i=0; i

miiingo.tistory.com

 

DFS

https://han-py.tistory.com/242

 

[코딩테스트] 쉽게 이해하고 바로 쓰는 DFS (깊이 우선 탐색)

DFS (깊이 우선 탐색) DFS 깊이 우선 탐색은 코딩테스트에서 기본적으로 알아야한다. DFS란 말 그대로 깊이를 우선적으로 탐색하는 방법이다. 좀 더 쉽게 말하면, 갈림길이 있다면 한방향으로 끝까

han-py.tistory.com


[프로그래머스 | 파이썬 / 자바스크립트] 대문자와 소문자(코딩테스트 입문/ level 0)

🐍 파이썬 | swapcase()

  • 대문자와 소문자의 문자열을 변환하는 데 사용된다
  • 반환값: 변환이 완료된 문자열

🐥 자바스크립트 | for문 약식표현 사용

https://tinyurl.com/2jv56b8z 

 

자바스크립트 for 반복문 약식 표현 예제보기

자바스크립트를 사용하여 for 루프문을 간단하게 사용하는 약식 표현, 한줄 사용 문법을 알아봅니다.

webisfree.com

 

🐥 자바스크립트 | charCodeAt()

str.charCodeAt(index)

주어진 인덱스에 대한 UTF-16 코드를 나타내는 0부터 65535 사이의 정수를 반환하는 메서드

 

🐥 자바스크립트 | 한 줄짜리 if 문, for 문 그리고 함수

https://so-tired.tistory.com/66

 

한 줄짜리 if 문, for 문 그리고 함수

조건문을 작성할 때마다 한 줄로 작성할 수 있을 것 같으면 중괄호를 표시할지 혹은 삼항 연산자를 사용할지 고민하곤 한다. 그래서 이에 대해 커뮤니티에서 얻은 답변 내용과 내 생각을 적어두

so-tired.tistory.com


[프로그래머스 | 파이썬 / 자바스크립트] 유한소수 판별하기(코딩테스트 입문/ level 0)

🐥 자바스크립트 |  toFixed(N)

numObj.toFixed([digits])

숫자를 고정 소수점 표기법(fixed-point notation)으로 표시하는 메서드, 소수점 아래 N자리까지 표현

반환값은 문자열.

 

GCD

https://tinyurl.com/2grlgelf

 

JavaScript로 최대공약수(GCD), 최소공배수(LCM) 구하기

최대공약수는 두 수 A와 B의 공통된 약수 중에 가장 큰 정수이다.최대공약수를 구하는 가장 쉬운 방법은 2부터 min(A, B)까지 모든 정수로 나누어보는 방법이다.두 수, 혹은 그 이상의 여러 수의 공

velog.io

 

반응형