본문 바로가기

분류 전체보기82

[자바스크립트-배열] splice, slice 정리 매번 사용할때 마다 헷갈리던 splice와 slice를 한번 정리해야겠다는 생각이 들었습니다. 매번 헷갈리는 내용인 부수효과여부, 반환값, 두번째 인수 3가지를 정리해보고 싶었습니다. 두번째 인수는 삭제할 개수인지 삭제할 인덱스인지 헷갈려 추가로 정리하게 되었습니다. splice splice 는 배열 요소를 삭제하거나 배열에 새로운 요소를 추가해주는 기능을 합니다. 기본 구문은 아래와 같습니다. Array.prototype.splice(startIndex [,deleteCount [, item1[, item2[, ...]]]]); 배열 요소 삭제하기 배열 요소를 삭제하기 위해서는 첫번째 인수로 삭제하려는 인덱스, 두번째 인수로 인덱스로부터 삭제할 deleteCount 값을 넘겨주면 됩니다. 삭제시 인덱스.. 2023. 3. 16.
[백준] 블랙잭 문제 정리 N개의 숫자가 주어지고 그 중에서 3개를 선택해서 주어지는 모두 더한 값이 M보다 작거나 같은 값 중에서 가장 큰 값을 구하세요. 나의 생각 주어지는 N개의 숫자중에서 서로 다른 3개의 숫자를 선택하는 조합이라고 생각하였습니다. N개에서 3개를 선택하는 모든 경우를 구하기 위해서 DFS 알고리즘을 사용하였습니다. 지금까지는 DFS 알고리즘을 사용할때 배열에서 한번 선택한 값을 제거하기 위해서 filter를 사용하였습니다. 다른 사람의 풀이를 보았을 때 속도가 10배 이상 차이가 나는 것을 확인 하여 visited 배열을 사용하게 되었습니다. 이는 깊이 우선탐색 방법인 DFS의 특성 때문에사용 가능한 방법으로, 이번에 선택한 인덱스의 아이템은 깊이의 마지막에 도달하기 전까지 다시 재사용할일이 없.. 2023. 3. 16.
[프로그래머스] 피보나치 수 문제 요약 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 입니다. 이때 2이상의 n이 주어질때 n번째 피보나치수를 1234567로 나눈 나머지를 구하세요. 나의 생각 최초 배열에 [0, 1]으로 초기화 후 반복문을 통해서 F(n) = F(n-1) + F(n-2)의 공식에 따라 n까지의 피보나치 수를 구합니다. 간단한 문제이지만 주의 해야하는 것은 n이 10만이 되면 정수를 담을 수 있는 사이즈를 초과하게 됩니다. 배열에 저장할 때 1234567을 나눈 나머지 값을 저장해 주어야 합니다. 나머지를 구하는 것이기 때문에 나머지 값으로 피보나치 수를 구해도 동일하게 구할 수 있습니다. function solution(n) { const .. 2023. 3. 16.
[프로그래머스] 가장 큰 수 문제 요약 0 또는 양의 정수가 담긴 배열이 주어졌을 때 해당 수들을 한번씩만 사용하여 이어 붙여 만들 수 있는 가장 큰 수를 반환하세요. 나의 생각 처음에는 DFS를 이용해서 배열에 담긴 모든 요소들을 조합하여 가장 큰 수를 비교하는 방벙으로 구현하였습니다. 그 결과 시간 초과 및 숫자의 길이가 변수에 담을 수 있는 크기를 초과하는 문제가 발생하였습니다. 이를 해결하기 위해 문제의 카테고리에서처럼 정렬 방식으로 구현하도록 변경하였습니다. 두수의 앞뒤를 바꿔가며 이어 붙여 숫자를 만든 후 비교하는 방법을 사용하였습니다. 그리고 정렬이 완료되면 join을 사용하여 하나의 문자열로 만들었습니다. 여기에서 가장 주의해야할 점은 배열의 모든 수가 0인 경우입니다. 배열의 길이가 아무리 길어도 모든 요소가 0인 .. 2023. 3. 14.
자주 잊어버리고 헷갈리는 자바스크립트 - 배열편 자주 사용되지 않아 가끔 사용할때마다 헷갈리는 자바스크립트 문법을 정리하였습니다. 가장 먼저 잊어버리거나 헷갈리는 배열 문법에 대해서 알아보겠습니다. 실제 사용방법보다는 각각의 특성별로 정리하는 형태로 진행하였습니다. 1. 고차함수 고차함수는 함수를 인자로 받거나 결과로 함수를 반환하는 함수를 고차함수라고 부릅니다. 배열에서는 많은 고차함수를 제공하고 있습니다. 가장 많이 사용되는 9가지 고차함수 forEach map filter find findIndex some every reduce sort 2. 부수효과 여부 배열 메서드를 사용할때 원본을 훼손 하는지 여부가 중요할때가 존재합니다. 아래는 메서드 호출 시 부수 효과 여부를 정리하였습니다. 배열에서 제공해주는 고차함수의 경우 부수효과가 없습니다. 부.. 2023. 3. 14.
[프로그래머스] 실패율 문제 요약 개발자 오렐리가 만든 오천성이라는 게임이 존재합니다. 이 게임의 실패율을 구하려고 합니다. 실패율을 구하는 공식은 아래와 같습니다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지 개수 N과 현재 머물러 있는 스테이지 번호가 담긴 stages 배열이 파라미터로 전달된됩니다. 이때 실패율이 높은 순으로 스테이지 정보를 배열로 반환하세요. ✅ 추가 정보 현재 스테이지에 머물러 있는 플레이어가 없는 경우 실패율은 0 실패율이 동일한 경우 스테이지가 낮은 순으로 반환 현재 머물러 있는 스테이지 값이 N + 1인 경우 모든 스테이지를 클리어한 경우 나의 생각 가장 단순하게 생각해보면 각 스테이지별로, stages에서 현재 머물러 있는 플레이어 정.. 2023. 3. 13.