본문 바로가기

반응형

자료구조&알고리즘

(33)
Leetcode-easy-7. Reverse Integer class Solution: def reverse(self, x: int) -> int: intToString = str(x) # zero check if len(intToString) == 1: return x elif intToString[-1] == '0': intToString = intToString[:-1] # sign check flag = False if intToString[0] == '-': flag = True intToString = intToString[1:] reverseList = reversed([intToString[idx] for idx in range(0, len(intToString))]) reverse = int(''.join(reverseList)) if rever..
Leetcode-easy-1.Two Sum 1. 첫번째 코드 - O(n^2) class Solution(object): def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ # 맨 앞의 element부터 차례대로 더한 후 맞는 값 return idx = 0 while idx < len(nums): num = nums[idx] for i in range(idx+1, len(nums)): if num + nums[i] == target: return [idx, i] idx += 1 2. 두번째 코드 - Hash Table 이용 ''' x를 고정하고 target-x가 존재하는지 확인 존재하면 index return ''' class..
[프로그래머스-Level2] 프린터 나의 풀이 - location의 값을 Integer 일때 어떻게 구분해야 할 지 고민하다가 문자열로 바꿈 (length 비교) - targetElement의 length 보다 큰 수가 priorities array에 존재하면 push하여 맨 뒤에 넣고, 그렇지 않으면 프린트 됨 (array에서 그대로 제거되면서 순번(answer)은 1씩 증가) - 요청한 element 이면 return function solution(priorities, location) { priorities.map((element, index) => { let tempElement = priorities.shift(); element = ''; for (let i = 0; i < tempElement; i++) { element +..
[프로그래머스-Level1] 같은 숫자는 싫어 function solution(arr) { const answer = []; arr.map((element, index) => { if (answer[answer.length - 1] !== element) { answer.push(element); } }) return answer; }
[프로그래머스-Level1] 하샤드수 1. 첫번째 풀이 function solution(x) { // 정수 각 자리수 더하기 let condition = x; let sum = 0; while (condition) { sum += condition % 10; condition = Math.floor(condition / 10); } if (x % sum === 0) { return true; } else { return false; } } 2. 두번째 풀이 - 삼항연산자로 이쁘게 function solution(x) { // 정수 각 자리수 더하기 let condition = x; let sum = 0; while (condition) { sum += condition % 10; condition = Math.floor(condition /..
[프로그래머스-Level1] 문자열을 정수로 바꾸기 1. 첫번째 풀이 function solution(s) { let answer = Number(s); return answer; } 2. 다른 풀이 function solution(s) { return s/1; }
[프로그래머스-Level1] 제일 작은 수 제거하기 function solution(arr) { let min = arr[0]; if (arr.length === 1) { return [-1]; } else { arr.map(element => { if (min > element) { min = element; } }) arr.splice(arr.indexOf(min), 1); return arr; } }
[프로그래머스-Level1] 핸드폰 번호 가리기 let phone_number = "027778888"; function solution(phone_number) { let answer = ''; for (let i = 0; i < phone_number.length - 4; i++) { answer += '*'; } answer += phone_number.slice(-4); return answer; } console.log(solution(phone_number));