분류 전체보기(277)
-
[CORS] CORS 오류 해결하는 방법 (자바스크립트/api/CORS/리액트/cors-anywhere 403 forbidden/cors 우회)
외부 api를 요청하여 프로젝트를 하던 중 오류가 생겨서 api를 받아올 수 없었다. 크롬에 뜨는 에러상황을 가지고 원인을 검색해보니 해당 오류는 CORS 오류였다. 나는 리액트로 프로젝트를 진행 중이었기 때문에 검색을 하던 중 package.json에 proxy를 추가하는 방법을 통해 해결할 수 있었다. (아래 글 참조) https://nyang-in.tistory.com/237 리액트 CORS 오류 해결 방법 Access to XMLHttpRequest at '주소A' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control chec..
2021.07.08 -
[백준] 2579. 계단 오르기 (자바스크립트/javascript/js/node.js/동적계획법/동적프로그래밍/다이나믹프로그래밍)
문제를 풀기 위한 아이디어 우선 dp배열을 만든다. 이 배열의 dp[n]에는 계단이 n개일 때 얻을 수 있는 점수의 최댓값이 저장될 것이다. 그리고 입력값으로 주어진 각 계단마다의 점수들을 stairs라는 배열에 저장한다. 이 때 계단 또한 1번째 계단이면 stairs[1]로 생각할 수 있게끔 stairs[0]에도 값을 넣어주면 편하다. (배열의 인덱스로 헷갈리지 않기 위함) dp[1] = stairs[1] : 계단이 1개일 때에는 계단 1개를 무조건 밟는 것이 최대 점수이다. (그리고 어차피 도착계단을 무조건 밟아야 하기 때문) dp[2] = dp[1] + stairs[2] : 계단이 2개일 때에는 계단 2개 다 무조건 밟는 것이 최대 점수이다. (계단을 연속해서 2개 밟는 것 까지는 괜찮다.) dp[..
2021.07.08 -
[백준] 1463. 1로 만들기 (자바스크립트/javascript/js/node.js/동적계획법/다이나믹프로그래밍/동적프로그래밍)
문제를 풀기 위한 아이디어 Bottom-up 방식으로 접근해본다. dp 배열을 만든다. dp[n]에는 숫자 n이 1이 되기 위해 연산한 최소 횟수가 저장될 것이다. dp[1] = 0 이다. (1은 아무짓도 안해도 1이 되기 때문에) dp[2]는 2가 되기 전에 1에다 +1을 해야 나올 수 있는 수 이기 때문에 dp[1] + 1 = 1이 된다. (+1이라는 것은 연산횟수가 한 번 더해지기 때문에 더한 것이다.) dp[3]은 3이 되기 전에 이 수가 2였을 수도 있고 1이였을 수도 있다. 즉, 2에다 1을 더해도 3이 되고, 1에다 3을 곱해도 3이 된다. 즉 dp[3] = (dp[2] + 1 , dp[1] + 1) 중 최솟값이 된다. 그럼 dp[4]부터는 어떻게 구할 수 있을까? dp[4]는 2로 나누어 ..
2021.07.08 -
[백준] 1932. 정수 삼각형 (자바스크립트/javascript/js/node.js/동적계획법/동적프로그래밍/다이나믹프로그래밍)
문제를 풀기 위한 아이디어 삼각형의 각각 n번째 줄을 행이라고 하고 그 행에서 하나의 요소들을 열이라고 둔다면 같은 행 안에서 가장 첫 열과 가장 끝 열을 제외하고 중간에 있는 요소들은 겹친다. 즉 중복해서 더해진다. 예를 들면 0번째 행, 1번째 행은 중간에 있는 요소가 없기 때문에 안 겹치지만 2번째 행부터는 가장 첫 열인 8과 가장 끝 열인 0을 제외하고 중간에 있는 1은 그 전 행의 3과도 더해질 수 있고 8과도 더해질 수 있다. 지금 문제는 이 중에서 최댓값을 구하라고 했기 때문에 중복해서 더해지는 요소는 두 가지 경우 중 최댓값만 저장하면 된다. 이를 그림으로 표현하면 다음과 같다. 내가 작성한 코드 (자바스크립트) let fs = require("fs"); let input = fs.read..
2021.07.05 -
[백준] 1655. 가운데를 말해요 (자바스크립트/javascript/node.js/힙정렬/우선순위 큐)
문제를 풀기 위한 아이디어 힙을 이용해서 중간값을 구하는 문제이다. 이전에 블로그 포스팅으로 했었던 힙으로 중앙값찾기를 잘 연습했던 터라 이 문제는 빠르게 잘 풀 수 있었다. 다만 연습했었을 때에는 최소힙과 최대힙의 크기가 같을 때 최소힙에서 가장 작은 값, 최대힙에서 가장 큰 값을 더해서 2로 나눈 값이 중앙값이 되었다면 이번 문제에서는 둘 중 최솟값을 중앙값으로 지정하여야 한다. 이는 자바스크립트의 Math.min 메소드를 통해 쉽게 구현했다. (제 블로그를 검색을 통해 들어온 분들은 아래의 게시글에 설명이 되어있으니 참고하시면 됩니다.) https://nyang-in.tistory.com/155 [자바스크립트 자료구조] 힙(heap) - 연습문제 일련의 숫자에서 중앙값 찾기 중앙값이란 어떤 배열을 ..
2021.07.02 -
[프로그래머스] N으로 표현 (자바스크립트/javascript/js/동적계획법/동적프로그래밍/다이나믹프로그래밍)
문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/42895 코딩테스트 연습 - N으로 표현 programmers.co.kr 문제를 풀기 위한 아이디어 이 문제는 N을 1번 쓰는 경우, N을 2번 쓰는 경우 , .... , N을 8번 쓰는 경우까지 따져보아야 한다. 문제에서 N이 8보다 크다면 -1을 출력하라고 했으므로 N을 8번 쓰는 경우까지 구해보고 나오지 않는다면 -1을 출력하면 된다. use라는 9 크기의 배열을 만든다. (9인 이유는 N을 8번 쓰는 경우까지 구할 것인데 배열의 인덱스가 0에서 시작함을 감안하여 더 직관적으로 생각하기 위해서 N을 1번 쓰는 경우를 use[1]에 저장하고, N을 2번 쓰는 경우를 use[2]에 저장하고, ....
2021.07.02