swift 리트코드 문제풀이 - leetcode 238 자신을 제외한 배열의 곱
swift 리트코드 문제풀이 - leetcode 238 자신을 제외한 배열의 곱 leetcode 238. Product of Array Except Self 문제 배열을 입력받아 output[i]가 자신을 제외한 나머지 모든 요소의 곱셈 결과가 되도록 출력하라. 예제 Input: nums = [1,2,3,4] Output: [24,12,8,6] 예제 Input: nums = [-1,1,0,-3,3] Output: [0,0,9,0,0] 처음에 문제를 봤을때 쉽네? 라고 생각했다...ㅋㅋ ㅋㅋㅋㅋㅋ ㅋㅋㅋㅋ ......... ....... 반복문과 스위프트의 reduce 함수를 이용해서 반복문에서 자신은 * 1을 하고 나머지 숫자는 reduce를 이용해서 전부 곱해버리는 로직을 생각했다. 아래처럼 간단하게 ..
2022. 7. 27.
swift 리트코드 문제풀이 - leetcode 42 빗물 트래핑
swift 리트코드 문제풀이 - leetcode 42 빗물 트래핑 leetcode 42. Trapping Rain Water 문제 높이를 입력받아 비 온 후 얼마나 많은 물이 쌓일 수 있는지 계산하라. 처음 문제를 보고 이해하는데 시간이 좀 오래 걸렸다. 일단 주어진 파라미터는 벽 높이가 담긴 배열 하나 이다. [0,1,0,2,1,0,1,3,2,1,2,1] 이 배열에서 하나하나의 숫자는 벽의 높이라는것을 알아두자. 그럼 조건을 한번 생각보자. 조건1. 벽과 벽사이에 빗물이 찰 수 있는 공간이 있어야 될것 같다. 여기서 중요한건 벽과 벽사이!! 그림에서 보면 첫번째 공간에도 빗물이 차야될것 같지만 그렇지 않다. 왜냐면 오른쪽 벽(index1) 만 존재 하기 때문이다. index 1번과 index 3 번째 ..
2022. 7. 26.
swift 리트코드 문제풀이 - leetcode 1 두 수의합
swift 리트코드 문제풀이 - leetcode 1 두 수의합 leetcode 1. Two Sum 문제 덧셈하여 타겟을 만들 수 있는 배열의 두 숫자 인덱스를 리턴하라. 예제 1: Input: nums = [2,7,11,15], target = 9 Output: [0,1] 예제 2: Input: nums = [3,2,4], target = 6 Output: [1,2] 예제 3: Input: nums = [3,3], target = 6 Output: [0,1] 이번 문제의 난이도는 어려운 편은 아닌듯. 주어진 파리미터는 두개임. 배열 = [2,7,11,15] 과 타겟숫자 9. 배열안의 숫자 2개를 더해서 9가되는 숫자 두개를 배열로 반환하면 됨. 바로 생각난 아이디어는 기준 숫자를 하나 정하고, 기준 숫자..
2022. 7. 26.
swift 리트코드 문제풀이 - leetcode 49 그룹 애너그램
swift 리트코드 문제풀이 - leetcode 49 그룹 애너그램 leetcode 49. Group Anagrams 문제 문자열 배열을 받아 애너그램 단위로 그룹핑을 하세요. 예제 Input: strs = ["eat","tea","tan","ate","nat","bat"] Output: [["bat"],["nat","tan"],["ate","eat","tea"]] 일단 애너그램이라는 용어가 생소할 수 있는데, 쉽게말하면 하나의 단어가 있으면 이 단어의 문자를 재배열 해서 다른 뜻을 가진 새로운 단어로 바꾸는 것임. [nat, tan] 을 보면은 a, n, t 문자가 하나씩 똑같이 들어있는것을 알 수 있음. 그리고 순서만 바뀌어서 그룹핑되어 있다는 것을 캐치할 수 있음. 그래서 단순히 떠오르는 아디어는 ..
2022. 7. 24.
swift 리트코드 문제풀이 - leetcode 344 문자열 뒤집기
swift 리트코드 문제풀이 - leetcode 344 문자열 뒤집기 문제 문자열을 뒤집는 함수를 작성하라. 입력값은 문자 배열이며, 리턴 없이 리스트 내부를 직접 조작하라. 예제1: Input: s = ["h","e","l","l","o"] Output: ["o","l","l","e","h"] 예제 2: Input: s = ["H","a","n","n","a","h"] Output: ["h","a","n","n","a","H"] 문제를 보고 아 이번문제도 문자열을 뒤집는 문제구나 잠깐! 생각을 했음.. 알고리즘 문제가 그렇게 간단할리 없지.. 문제를 자세히 보면 리턴 없이! , 리스트 내부를 직접 조작! 이라는 말이 있다. 즉 이 문제는 새로운 배열을 할당하지 말고 배열의 포인터를 사용해서 배열 안의 ..
2022. 7. 21.