코딩 테스트/프로그래머스 level2 28

올바른 괄호

코드 function solution(s) { let check = 0; for (let i = 0; i < s.length; i++) { s[i] === "(" ? check++ : check--; if (check < 0) return false; } return check ? false : true; } 처음에 위 코드처럼 했는데 효율성에서 통과가 안되서 function solution(s) { let check = 0; for (let i of s) { i === "(" ? check++ : check--; if (check < 0) return false; } return check ? false : true; } 이것 처럼 for of문을 쓰니까 통과가 됐다 그런데 효율성 문제는 시간복잡도의 ..

N개의 최소공배수

아이디어 최소공배수를 구하면 된다. 주어진 값들중 제일 큰 값이상일 것이며 최소공배수에 주어진 값들을 나눴을때 모두 나머지가 0이어야한다 알고있었는데 딱히 써본적없는 arr.every를 썼다 (some도 있음) 코드 function solution(arr) { let answer = 0; let i = Math.max(...arr); while (true) { if (arr.every((ele) => i % ele === 0)) { answer = i; break; } i++; } return answer; } 다른 사람의 좋은 코드 function nlcm(arr) { return arr.reduce((a, b) => (a * b) / gcd(a, b)); } function gcd(a, b) { re..