알고리즘 풀면서 찾은 메서드들 모음집.zip

주유구·2022년 3월 17일
0

알고리즘 문제를 풀면서 각종 메서드들 정리하는 타래

프로그래머스에서 알고리즘문제를 풀어보면서 for문과 if문만으로는 해결이 안된다는 것을 알았다
각종 메서드를 활용하면 코드가 간결해지고 때로는 이런방법이 있네?싶은 것도 있었다

매번 북마크에서 찾으려니 귀찮기도하고 머리에도 안들어와서 이참에 정리!

reduce():덧셈

arr.reduce((accumulator, currentNumber) => accumulator + currentNumber);

splice():배열 마지막 요소 제거

var array = [10,11,12,13,14,15,16,17];
array.splice(-1,1);
console.log(array);
//result [10, 11, 12, 13, 14, 15, 16]

pop():배열 마지막요소 제거(splice보다 사용법 단순함)

var array = [10,11,12,13,14,15,16,17];
array.pop();
console.log(array)
//result [10, 11, 12, 13, 14, 15, 16]

filter():전달된 함수에 따라 수정된 배열 반환

var array = [10,11,12,13,14,15,16,17];
array = array.filter((element, index) => index < array.length - 1);
console.log(array);
//result [10, 11, 12, 13, 14, 15, 16]

concat():배열에 새요소 맨 뒤에 추가

var array = [10,11,12,13,14,15,16,17];
array = array.concat(18)
console.log(array)
//result [10, 11, 12, 13, 14, 15, 16,17,18]

join():배열 요소를 문자열로 병합

var arr = [1, 2, 3];
var str = arr.join("-"); // "1-2-3"

indexOf():일치하는 요소의 인덱스 반환

var arr = [1, 5, "a", o, true, 5, [1, 2], "9"];

arr.indexOf(5);       // 1

includes():인수로 전달받은 값이 배열에 포함되어 있는지 확인한 후 해당하는 값이 있다면 true를 리턴

var a = [1, 2, 3];
a.includes(2);  // true
a.includes(4);  // false

push():배열 끝에 요소 추가

var arr = ['a', 'b', 'c'];

arr.push('d'); // 배열의 끝에 요소를 추가
//arr = ['a', 'b', 'c', 'd']

Math 친구들

Math.floor() : 소수점 이하를 버림
Math.ceil() : 소수점 이하를 올림
Math.round() : 소수점 이하를 반올림

sort():정렬(유니코드때문에 원치않게 정렬될 수 있음 주의)

const arr1 = [2, 1, 3];
const arr2 = ['banana', 'apple', 'orange']

arr1.sort();
document.writeln(arr1); // [1, 2, 3]

arr2.sort();
document.writeln(arr2); // ['apple', 'banana', 'orange']

/////////////////////////////
const arr = [2, 1, 3, 10];

arr.sort(function(a, b)  {
  return a - b;
});//오름차순정렬법
document.writeln(arr); // [1, 2, 3, 10]

split():문자열 배열로 바꾸기

*** split()과 split("")은 차이있음
split()은 전체값이 0번째 인덱스값(전체 문자열이 하나의 인덱스)
split("")은 문자 하나하나가 인덱스로 처리

var str = "서울, 대전, 대구, 부산";
var arr = str.split(",");
console.log(arr)//[서울, 대전, 대구, 부산]

substr():문자열 자르기 기본 함수. (시작, 길이) 중 길이 부분 생략시 시작부터 끝까지 자름

var str = '자바스크립트';

var result1 = str.substr(0, 2);
// 결과 : "자바"

var result2 = str.substr(2, 4);
// 결과 : "스크립트"

var result3 = str.substr(2);
// 결과 : "스크립트"

substring() 함수는 시작 위치에서 종료 위치까지 문자열을 자른다. 주의할 점은 종료 위치의 -1까지 문자열을 자른다는 것이다.

var str = '자바스크립트';

var result1 = str.substring(-4, 5); // str.substring(0, 5)
// 결과 : "자바스크립"

var result2 = str.substring(2, -1); // str.substring(0, 2)
// 결과 : "자바"

slice():문자열 자르기

var str = '자바스크립트';

var result1 = str.slice(0, 2);
// 결과 : "자바"

var result2 = str.slice(2, 6);
// 결과 : "스크립트"

var result3 = str.slice(2);
// 결과 : "스크립트"

/************************************/

var result4 = str.slice(-4);
// 결과 : "스크립트"

var result5 = str.slice(-4, 5);
// 결과 : "스크립"

var result6 = str.slice(2, -1);
// 결과 : "스크립"

map():배열 내 요소 1대1로 짝지어 줌

배열.map((요소, 인덱스, 배열) => { return 요소 });


const oneTwoThree = [1, 2, 3];
let result = oneTwoThree.map((v) => {
  console.log(v);
  return v;
});
// 콘솔에는 1, 2, 3이 찍힘
oneTwoThree; // [1, 2, 3]
result; // [1, 2, 3]
oneTwoThree === result; // false

result = oneTwoThree.map((v) => {
  return v + 1;
});
result; // [2, 3, 4]

result = oneTwoThree.map((v) => {
  if (v % 2) {
    return '홀수';
  }
  return '짝수';
});
result; // ['홀수', '짝수', '홀수']

정수/실수 체크
1) Num.isInteger() - (boolean타입)
2) % 활용

//1)

document.writeln(Number.isInteger(1)); // true
document.writeln(Number.isInteger(0)); // true
document.writeln(Number.isInteger(-10); // true
document.writeln(Number.isInteger(12.3)); // false

//2)
function isInteger(number)  {
  return number % 1 === 0;
}

document.writeln(isInteger(10)); // true
document.writeln(isInteger(0)); // true
document.writeln(isInteger(-10)); // true
document.writeln(isInteger(123.1)); // false

숫자->배열

//1)
function numberToString1(n) {
  return (n + '').split('')
}

numberToString1(151)  // [ '1', '5', '1' ]

//2)
function numberToString2(n) {
  let nums = [];
  do {
    nums.push(n % 10);  // 1
    n = Math.floor(n / 10);  // 2
  } while (n > 0);
  return nums
}

numberToString2(151)  // [ 1, 5, 1 ]

2번 예제코드 원리 설명
(출처:https://im-designloper.tistory.com/58)

profile
뜨개질 어딕트 개발자

0개의 댓글