목록Algorithm/leetcode (15)
에러 안나게 해주세요
var maxSubArray = function(nums) { if(nums.length == 1) return nums[0]; let num = 0; let FirstNode = nums[0]; let SecondNode = nums[1]; for(let i = 2; i < nums.length; i++){ const current = Math.max(FirstNode,SecondNode); SecondNode=nums[i]; FirstNode=current; if(SecondNode < FirstNode && SecondNode !== FirstNode){ if(num < SecondNode ){ num = SecondNode; console.log(num); } } } return FirstNode..
I는 V (5)와 X (10) 앞에 배치되어 4와 9를 만들 수 있습니다. X는 L(50)과 C(100) 앞에 배치하여 40과 90을 만들 수 있습니다. C는 D(500)와 M(1000) 앞에 배치하여 400과 900을 만들 수 있습니다. 문제가 얼마 안됫는지 비추천이 없다. 안푸는건지 어쩐건지.. 문제를 이해를 못해서 두번째 테스트 케이스인 'IV'에서 15분을 헤맸다. output은 6인데 정답은 4가 뜨니까 뭔가 조건이 다르다는 것을 깨닫고, 결국에는 하나하나 파파고의 도움으로 읽어서 해결함. 근래 풀어본 문제 중에서 직관적이라서 가장 쉬웠던 것 같다. 포스팅 후에 다른 사람 풀이를 봐야겠다. 30분 정도 걸렸음. 뿌듯하네 var romanToInt = function(s) { let result ..
테스트케이스가 2개를 쥐어줬는데, 2번째 배열의 y가 3번째 배열의 y보다 크면 삼각형이 완성되는 줄 알았다. var isBoomerang = function(points) { let visited = []; for(let i = 0; i visited[2]){ return true; } else { return false; } }; 테스트케이스 2개는 맞았는데 히든 테스트케이스들은 틀렸다고 떳음.. 30분 정도 해보다가 안되서, 검색해봤다. 이 문제 Topic이 수학이었는데, 수학 공식을 이용해서 푸는 문제였음. 신발끈의 공식을 이용해서 푸는 문제 였는데,..
var maxArea = function(height) { // maxArea = min(a,b) x (bindex x aindex); var result = []; for(let i = 0; i < height.length; i++){ for(let j = i+1; j
Array 문제인데, 자바스크립트 코드를 못짜서 못 푼 문제.. 나는 배열에서 같은 숫자를 찾으면 지울 때마다 Output을 올릴 생각을 했었는데, 30분 정도 헤매다가 결국 찾아보니, 객체 형태로 만들어서 key, value 포인트값으로 더해주는식으로 풀더라 접근의 방식이 아예 달랐음. function sockMerchant(n, ar) { let obj = {}; let point = 0; for(let num of ar) { obj[num] = obj[num] + 1 || 1; if(obj[num] % 2 === 0){ point += 1; } } return point; } for .. of 형태로 풀이 했는데, 역시 MDN에서 찾아봤다. 이 말고 다른 풀이도 찾아봤는데 forEach 형태로 풀어..
'use strict'; const fs = require('fs'); process.stdin.resume(); process.stdin.setEncoding('utf-8'); let inputString = ''; let currentLine = 0; process.stdin.on('data', inputStdin => { inputString += inputStdin; }); process.stdin.on('end', _ => { inputString = inputString.trim().split('\n').map(str => str.trim()); main(); }); function readLine() { return inputString[currentLine++]; } /* * Complet..
문제 Given an array nums. We define a running sum of an array as runningSum[i] = sum(nums[0]…nums[i]). Return the running sum of nums. ``` Input: nums = [1,2,3,4] Output: [1,3,6,10] Explanation: Running sum is obtained as follows: [1, 1+2, 1+2+3, 1+2+3+4]. ``` 풀이 : /** * @param {number[]} nums * @return {number[]} */ var runningSum = function(nums) { let result= []; for(i=0; i < nums.length; i++){..