일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- JS module system
- chromatic error
- 웹 크롤링
- 항해99 미니프로젝트
- toggle-btn
- FP 특징
- v8 원리
- 리덕스
- 테스트 코드 툴 비교
- 웹팩 기본개념
- 알고리즘
- 리액트 메모
- 렌더링 최적화
- 항해99
- 실행컨텍스트
- 항해99 부트캠프
- 타입스크립트
- gql restapi 차이
- 리액트 메모이제이션
- jwt
- 리액트 렌더링 최적화
- 항해99 사전스터디
- 리액트
- js배열 알고리즘
- next js
- 코어자바스크립트
- Js module
- 함수형 프로그래밍 특징
- this
- 자바스크립트 엔진 v8
- Today
- Total
목록알고리즘 (22)
Jaeilit
문제 링크 https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 정답코드 const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "./이분탐색/1654/input.txt"; const input = fs.readFileSync(filePath).toString().trim().split("\n"); const [n, k..
문제링크 https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 틀린 내 코드 const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt"; const input = require("fs") .readFileSync(filePath) .toString() .trim() .split("\n"); const N = Number(input.shif..
문제 https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 틀린 내 코드 console.time("code_measure"); let fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt"; const input = require("fs") .readFileSync(filePath) .toStr..
문제 링크 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 문제는 첫번째 배열의 숫자가 있는데 두번째 배열에서 첫번째 배열에 숫자가 있느냐 있으면 1 없으면 0을 만들어서 출력하는 것이다. 먼저 내가 짠 틀린 코드를 보면, 코드 풀이 1. B 의 배열을 이진탐색을 위해서 오름차순 정렬을 했다. 대신 원본 배열을 잃지않기 위해 복사를 했다. 2. 정답의 길이만큼 0을 채워놓고 조건에 맞는 식만 1을..
완전탐색 중 단순 브루트포스는 모든 값을 읽어내기 때문에 가장 오래걸리지만 가장 확실한 방법입니다. 주어진 배열에서 어떤 값을 비교해서 최대 값을 찾거나 최소 값을 찾거나 이런 경우에는 배열을 2중으로 훑어야 하기 때문에 시간 복잡도는 O(n^2) 이 됩니다. 이진탐색 나무위키 그림입니다. 기본개념은 분할정복인데, 이유는 계속 반으로 나누면서(분할) 내가 원하는 조건에 상회하는지 지속적으로 살피는 것이기 때문이다. 이진탐색의 시간복잡도는 O(log N)으로 선형탐색 O(N) 보다 더 빠릅니다. 이유는 정말 간단하게도 분할을 하기 때문입니다. 이진탐색의 예시 코드 입니다. left 또는 statrt 라고 표현하며 시작 지점과, rigth 또는 End 라고 표현하는 끝 지점을 지정해주고 middle 지점은 ..
후기, 1단계는 풀 줄 알았는데 카카오라서 그런가 너무 어려웠다. 테케는 통과했으나 채점돌리니 2개 빼고 다 틀렸다. 아마 그 2개가 테케 2개인듯 하다... 입출력 예제이다. 문제를 이해하는데도 한 10분이상 걸린듯 하다. id_list 가 유저목록이고 report 가 신고 목록이다. k는 신고를 이만큼 먹어야 정지 된다는 상수이다. report 에서 ['muzi frodo'] 는 무지가 프로도를 신고했다는 뜻이다. 합계이다. 무지는 1번 프로도는 2번 어피치는 0 네오는 2번 신고를 당했는데 중요한건 사진의 밑에서 무지는 k 만큼 신고당해서 정지를 먹인 그 신고자에게 정지 시켰다는 메일을 보내는 횟수를 배열로 리턴해야하는 문제이다. 예를들어서.. 밑에 테이블에서 유저가 신고한 ID 를 보면 무지가 프..
투포인트란 배열에서 포인트를 2개를 가지고 배열을 탐색하는 방법이다. 예제) [1, 2, 2, 5, 7, 7, 99 ] 배열에서 중복이 아닌 숫자의 갯수를 얻어내려면?? 이중 for문으로 i 와 j 를 두고 모두 탐색하면 방법도 있겠지만 그건 for 문이 2번이니 On^2 를 가지게 된다. i와 j를 가진다는 점에서는 비슷하지만 투포인트 기법으로 하게되면 O(n) 의 결과를 얻게 된다. 예제) [-4, -3, -2, -1, 0, 1, 2, 5] 이 배열에서 서로 더 한 값이 0이 되는 수를 찾아서 반환한다. 코드를 살펴보자, function sumZero(arr) { for (let i = 0; i < arr.length; i++) { for (let j = i + 1; j < arr.length; j+..
배열 2개를 비교해서 중복을 검사하는 알고리즘 1. 함수로 배열 2개를 받아서 두번째 배열이 첫번째 배열의 제곱이 되는 수로 이루어져있는지 체크하는 알고리즘 [1, 2, 3, 2], [9, 1, 4, 4] function same(arr1, arr2) { if (arr1.length !== arr2.length) { return false; } for (let i = 0; i < arr1.length; i++) { let correctIndex = arr2.indexOf(arr1[i] ** 2); console.log(correctIndex); if (correctIndex === -1) { return false; } console.log(arr2); arr2.splice(correctIndex, 1)..
https://leetcode.com/problems/valid-parentheses/ Valid Parentheses - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 괄호의 짝이 맞다면 true 아니면 false 를 리턴하는 문제 split(").sort() 를 이용해서 배열로 바꾼 뒤 순서대로 나열해서 하나하나 탐색해서 풀어보려고 했지만 실패함 힌트를 보니까 스택구조로 풀어라는 말이 나와있었다. 스택구조란 push 와 pop 을 이용해서 배열의 마지막 단에..
문제 https://programmers.co.kr/learn/courses/30/lessons/12969 코딩테스트 연습 - 직사각형 별찍기 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 제한 조건 n과 m은 각각 1000 이하인 자연수 programmers.co.kr 주어진 b가 가로 a 가 세로 만큼 별을 찍으면 된다. for문을 얼마나 이해하고있는가에 대한 문제일까? process.stdin.setEncoding('utf8'); process.stdin.on('data', data => { const n = data.split(" "); const a = Number(n[0]), b = ..