Algorithm

Algorithm

Swift로 Leet Code 문제 풀기 - 26. Remove Duplicates from Sorted Array (Easy)

요 문제는 정렬된 배열 내에서 중복된 값들을 모두 제거하고 난 뒤의 배열 count를 체크한다. 인자로 들어오는 nums는 inout이라 값을 변경하면 외부의 값도 함께 변경되는 친구. 처음에는 배열 내에 _로 치환도 해야하는건가 싶었는데 생각해보니 그럼 [Int]를 만족할 수 없어서 그냥 제거를 했다. (그리고 그게 맞았다.) func removeDuplicates(_ nums: inout [Int]) -> Int { let numsCount = nums.count var number = -101 for (idx, num) in nums.reversed().enumerated() { if num != number { number = num } else { nums.remove(at: numsCount-..

Algorithm

Swift로 Leet Code 문제 풀기 - 21. Merge Two Sorted Lists (Easy)

아주 오랜만에 풀어보는 Leet Code~ 영어를 너무 오랜만에 봐서 머리가 띵하다. 21번 문제인 Merge Two Sortes Lists는 이미 오름차순 배열이 완료된 두개의 ListNode를 합쳐서 새로운 ListNode를 만들어내는 문제였다. 이것 또한 예시를 보면 바로 이해가 되었다. 처음에는 '아 뭐야~~ 배열 두개 그냥 더해서 sort 한 번 돌리면 되겠네~~' 싶었는데 func의 인자를 보니 타입이 ListNode 형이라 1차 당황, 생겨먹은게 내가 자료구조 시간에 배웠던 linked list와 똑같아서 2차 당황... 재귀 함수가 무의식적으로 생각났는데 억지로 밀어 놓고 다른 방법으로 풀었다. func mergeTwoLists(_ list1: ListNode?, _ list2: ListN..

Algorithm

Swift로 Leet Code 문제 풀기 - 14. Longest Common Prefix (Easy)

14번 문제는 주어진 단어 배열에서 공통으로 나타나는 prefix를 찾아서 반환하는 문제였다. 예시를 보면 바로 이해할 수 있다. 1번 예시를 보면 strs로 받은 단어 세 개의 공통 prefix인 fl이 output으로 반환된다. 2번은 공통 prefix가 존재하지 않으므로 ""를 반환한다. 내가 푼 방법 1. 각 단어의 글자를 하나씩 돌면서 같은 글자면 result에 추가, 하나라도 다른 게 나오면 바로 결과를 return 생각은 간단했는데 코드는 그렇지 못했네..ㅎㅋㅎㅋ class Solution { func longestCommonPrefix(_ strs: [String]) -> String { var result: String = "" var index: Int = 0 while true { v..

Algorithm

Swift로 Leet Code 문제 풀기 - 13. Roman to Integer (Easy)

13번 문제는 로마 숫자를 실제 숫자로 변환하는 문제였다. 로마 숫자 심벌마다 정해진 value가 있다. (I, V, X만 알았는데 다른 것도 다 실제로 있는 건가...?) 그리고 또 하나의 조건이 더 있다. 4, 9, 40, 90, 400, 900은 표기 조건이 달랐다. 4면 IIII가 아니라 IV으로 표기하는..? 예시를 하나 확인해보자. Input으로 MCMXCIV라는 문자열이 들어왔을 때 M은 1000, CM은 900, XC는 90, IV는 4로 치환되어 결과값이 1994가 된다. 그냥 기본 로마 숫자만 들어오면 참 좋을 텐데.. 각 자릿수를 확인하는 게 포인트였던 것 같다. 내가 푼 방법 1. 일단 문자열을 봤을 때 IV, IX, XL, XC, CD, CM가 존재하는 경우 결과값에 미리 더한 후..

eunjuicy
'Algorithm' 카테고리의 글 목록 (2 Page)