백준[node.js] > 5430번 AC
·
🔒Algorithm
문제링크https://www.acmicpc.net/problem/5430문제풀이R 연산을 해야할 시 실제 배열을 앞뒤를 변경하게 계산속도 차원에서 효율적이지 못하다. 따라서 원본 배열의 원소의 순서를 뒤집기 보다는 앞에서 원소를 제거 or 뒤에서 원소를 제거 하는 방식으로 문제를 풀어야 시간초과 없이 문제를 풀 수 있다. 나는 direction 이라는 변수의 값을 기준으로 배열의 원소를 제거하는 방향을 파악하여 이를 진행하였다. 문제를 다 풀고나서 보니 풀이가 꽤나 긴거 같은데 추후 시간나면 줄여봐야겠다. ( 다른사람풀이 : https://tesseractjh.tistory.com/250 )let fs = require("fs");let input = fs.readFileSync("/dev/stdin")..
백준[node.js] > 1541번 잃어버린 괄호
·
🔒Algorithm
문제https://www.acmicpc.net/problem/1541 문제풀이첫번째 for문에서 [ '+1' , '-2' , '-3' , '+2' , '+2' , '3' ] 와 같은 arr를 생성하고 두번째 for문에서 answer을 계산한다 핵심은 음수 이후에 연속적으로 양수가 나올 때 해당 양수는 결국 음수로 계산해야 최솟값을 구할 수 있다는 점이다.예시) 1-2+3+3 => 1-(2+3+3)  이런식으로 음수이후로 연속적으로 나타나는 양수는 모두 음수처리 후 모든 수들을 합하면 최솟값을 구할 수 있다.let fs = require("fs");let input = fs.readFileSync("/dev/stdin").toString().trim();let num = "";let numArr = [];..
백준[node.js] > 1141번 접두사
·
🔒Algorithm
문제링크https://www.acmicpc.net/problem/1141 문제풀이문자들을 비교하면서 문자가 긴 단어일 수록 다른 단어의 접두어가 될 확율이 떨어진다. 이를 고려하여 두 단어중 하나의 단어가 다른 단어의 접두어가 될 때 두 문자중 이왕이면 긴 문자를 집합에 포함함으로 써 최대한 많은 단어를 집합에 포함시킬 수 있다.let fs = require("fs");let input = fs.readFileSync("/dev/stdin").toString().split("\n");let dic = [];for (let i = 1; i