본문 바로가기

리트코드8

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 819 가장 흔한 단어 swift 리트코드 문제풀이 - leetcode 819 가장 흔한 단어 leetcode 819. Most Common Word 문제 금지된 단어를 제외한 가장 많이 등장하는 단어를 출력하라. 대소문자 구분하지 않고, 마침표, 쉼표 등은 무시한다. 예제 Input: paragraph = "Bob hit a ball, the hit BALL flew far after it was hit.", banned = ["hit"] Output: "ball" 문제파악을 해보자면 가장 많이 등장하는 단어를 출력하는 함수를 만들어야 된다. 인자는 두개가 되겠네. 하나는 "Bob hit a ball, the hit BALL flew far after it was hit." 이런 문자열 값이고 나머지 하나는 ["hit"] 이.. 2022. 7. 23.
swift 리트코드 문제풀이 - leetcode 937 로그 파일 재정렬 swift 리트코드 문제풀이 - leetcode 937 로그 파일 재정렬 문제 leetcode 937 - Reorder Data in Log Files 로그를 재정렬하라. 기준은 다음과 같다. -로그의 가장 앞 부분은 식별자이다. -문자로 구성된 로그가 숫자 로그보다 앞에 온다. -식별자는 순서에 영향을 끼치지 않지만, 문자가 동일한 경우 식별자 순으로 한다. -숫자 로그는 입력 순서대로 한다. -문자 로그는 사전 순으로 정렬한다. 예제1: Input: logs = ["dig1 8 1 5 1","let1 art can","dig2 3 6","let2 own kit dig","let3 art zero"] Output: ["let1 art can","let3 art zero","let2 own kit dig.. 2022. 7. 22.
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.
swift 리트코드 문제 풀기 - leetcode 유효한 팰린드롬 swift 리트코드 문제 풀기 - leetcode 유효한 팰린드롬 주어진 문제 주어진 문자열이 팰린드롬인지 확인하라. 대소문자를 구분하지 않으며, 영문자와 숫자만을 대상으로 한다. 예제1 Input: s = "A man, a plan, a canal: Panama" Output: true 설명: "amanaplanacanalpanama" is a palindrome. 예제2 Input: s = "race a car" Output: false 설명: "raceacar" is not a palindrome. 팰린드롬이란 거꾸로해도 똑같은 문자열이 되는 문자열이 되는 문장을 뜻함. 한글로 예를 들면 토마토, 기러기 같은 단어들이 있지. 주어진 문제가 대소문자를 구분하지 않고, 영문자와 숫자만을 대상으로 하는 .. 2022. 7. 20.