본문 바로가기

전체 글31

놓치기 쉬운 String.prototype.split() 사용법 5가지 String객체에 기본적으로 제공되는 split prototype 메서드는 원본 문자열을 변경하지 않으며 원하는 형태로 문자열을 분리할 수 있어 많은 곳에서 자주 사용된다. split 매서드에는 아래와 같이 separator 매개변수와 limit 매개변수를 전달할 수 있으며 separator만 전달하거나 아무것도 전달하지 않을 수도 있다. split(); split(separator); split(separator, limit); 1. separator로 전달된 값은 strings로 강제변환 된다. separator에는 문자열, 정규표현식, undefined, Symbol.split을 메서드로 가지는 객체가 전달되어야 한다. 만약 위 4가지를 제외한 다른 타입이 값으로 전달된 경우 toString 메서드.. 2023. 12. 18.
vscode javascript 백준 풀이 환경 만들기 지난 vs code c++로 백준 풀이 환경 만들기 글에 이어 javascript 환경을 만드는 방법에 대한 글입니다. c++ 환경을 구축할 때도 사용한 Code Runner - Jun Han 확장 프로그램과 input.txt를 통한 입력 방식을 동일하게 사용합니다. 보다 구체적인 내용을 알고 싶다면 이전 글을 참고해 주시기 바랍니다. JavaScript에서는 node.js에 내장되어 있는 readline 라이브러리 또는 fs 라이브러리를 사용해 txt 파일의 값을 가져올 수 있습니다. fs 라이브러리를 사용하는 방법이 더 빠르게 입력을 받아올 수 있어 해당 라이브러리를 사용하는 방식을 소개해드리겠습니다. 파일을 읽기 위해서는 fs 라이브러리의 readFileSync 함수를 사용해야 합니다. readFi.. 2023. 12. 10.
[백준] 오타 - 5875 문제링크 5875번: 오타 올바른 괄호쌍을 좋아하는 키파는 최근에 노트북을 샀다. 그런데 키보드의 크기가 너무 작았기 때문에, 키파는 혹시 여는 괄호와 닫는 괄호를 서로 잘못 입력하지 않았는지 걱정되었다. 키 www.acmicpc.net 최대 100,000개의 입력값이 주어지며 1초의 시간 안에 풀어야 하므로 log(n) ~ nlog(n) 안에 풀어야 합니다. 변경할 괄호의 위치를 순환하는 n은 필수적으로 소모되므로 변경된 문자열이 올바른 괄호쌍인지 판단하는데 소모되는 시간은 log(n) 보다 짧아야 합니다. 문제를 풀기 위해 누적합(prefix sum) 알고리즘을 사용했습니다. 해당 알고리즘은 n만큼의 시간을 소요하여 새로운 정보를 만든 후 해당 정보를 1만큼의 시간을 통해 가공하여 답을 찾습니다. 풀.. 2023. 12. 8.
[백준] 행렬 곱셈 순서 - 11049번 문제링크 11049번: 행렬 곱셈 순서 첫째 줄에 입력으로 주어진 행렬을 곱하는데 필요한 곱셈 연산의 최솟값을 출력한다. 정답은 231-1 보다 작거나 같은 자연수이다. 또한, 최악의 순서로 연산해도 연산 횟수가 231-1보다 작거나 같 www.acmicpc.net 재귀를 활용하여 모든 경우의 수를 확인해 보는 간단한 문제입니다. 하지만 시간제한에 걸리지 않기 위해서는 memoization과정을 사용해야만 합니다. 풀이 코드 #include #include #include using namespace std; vector matrix; vector dp; int getMinCnt(int st, int ed) { if (st == ed) { return 0; } if (dp[st][ed] != -1) { .. 2021. 11. 19.