본문 바로가기

Leetcode

[LeetCode]20. Valid Parentheses 올바른 괄호를 썼는지 판별하는 문제입니다. 전에 풀어봤던건 단순 괄호 열리고 닫히는거였는데 이건 좀 더 복잡하네요. Input/Output dd Input Output () true ()[]{} true (] false ([)] false {[]} true 시도(성공) 각 괄호 시작값에 따라 적절한 값이 나오도록 객체화 했습니다. 값이 쌓일수있도록 빈 스택을 만들고, 현재값이 객체의 값이랑 일치할때마다 스택이 한글자씩 지워지도록 구성했습니다. 이렇게 처리가 전부 끝났는데도 스택값이 남아있을경우 false, 0이면 true를 반환합니다. /** * @param {string} s * @return {boolean} */ var isValid = function(s) { // s='[}'; const par.. 더보기
[LeetCode]14. Longest Common Prefix - javascript 예시 Input Output ["flower", "flow", "flight"] "fl" ["dog", "racecar", "car"] "" 시도(성공) 한글자씩 쪼개서 배열속 문자들을 확인한후 같으면 계속 진행하고, 하나라도 안맞는게 생기면 딱 잘라버리는겁니다. /** * @param {string[]} strs * @return {string} */ var longestCommonPrefix = function(strs) { let first = strs[0], //flower fLen = first.length; //6 // console.log(first, fLen); for(let i=0;i 더보기
[LeetCode] 13. Roman to Integer - javascript 로마 숫자를 숫자로 표기하는 문제이다. Input/Output Input Output III 3 IV 4 IX 9 LVIII 58 MCMXCIV 1994 1차시도(실패) 난 처음에 단순하게만 생각하고, for of 로 1자씩 나눈다음, 스위치문으로 계산했다. 이제 와서 생각해보면 당연히도 오류. 왜 4랑 9를 생각못했을까, 더보기
[LeetCode]9. Palindrome Number - javascript 회문, 팰린드롬이라고 한다. 낯선 명칭에 당황하겠지만은 내이름은 이효리 거꾸로 해도 이효리 같은겁니다. 토마토 이런거 인풋, 아웃풋 Input Output 121 true -121 false 10 false -101 false 첫번째 시도(실패) 내가 착각한게 숫자를 배열화 한후의 값이랑 뒤집은 값을 비교했을때 같으면 같을거라고 생각했는데, 컴퓨터는 다르다고 합니다. 이건 컴퓨터가 못알아먹으니 패스 /** * @param {number} x * @return {boolean} */ var isPalindrome = function(x) { if(x 더보기
[LeetCode] 1: TwoSum - javascript 난 가장 일반적으로 풀었다. 되도록이면 더 깔끔한 코드, 더 짧은 런타임이 좋다는건 알지만 지금은 우선 많이 푸는게 좋다고 생각한다. Input: nums = [2,7,11,15], target = 9 Output: [0,1] Output: Because nums[0] + nums[1] == 9, we return [0, 1]. 영어로 되어 있어서 당황스러울수도 있지만, 인풋값/결과값을 비교해보면 규칙을 알 수 있다. nums라는 배열에서 임의로 2개 숫자를 더했을때 합이 target과 일치할때의 숫자 위치값을 output으로 뽑으면 된다. 순서는 0부터 4자리니까 3까지이다. /** * @param {number[]} nums * @param {number} target * @return {number.. 더보기