diff --git a/contains-duplicate/HISEHOONAN.swift b/contains-duplicate/HISEHOONAN.swift new file mode 100644 index 000000000..c65f5c2cb --- /dev/null +++ b/contains-duplicate/HISEHOONAN.swift @@ -0,0 +1,17 @@ +// +// Contains_Duplicate.swift +// Algorithm +// +// Created by 안세훈 on 3/31/25. +// + +import Foundation + +class Solution { + func containsDuplicate(_ nums: [Int]) -> Bool { + return nums.count != Set(nums).count + //Set : 중복된 값을 갖지 않음. + //문제로 주어진 배열의 개수와 중복을 갖지않는 Set연산의 개수의 차이 비교 + //비교 후 다르다면 true 같다면 false + } +} diff --git a/house-robber/HISEHOONAN.swift b/house-robber/HISEHOONAN.swift new file mode 100644 index 000000000..31aa34ca4 --- /dev/null +++ b/house-robber/HISEHOONAN.swift @@ -0,0 +1,27 @@ +// +// House_Robber .swift +// Algorithm +// +// Created by 안세훈 on 3/31/25. +// +///https://leetcode.com/problems/house-robber/description/ + +class Solution { + //Dynamic Programming + func rob(_ nums: [Int]) -> Int { + + if nums.count == 1 {return nums[0]} //배열이 1개인 경우 + if nums.count == 2 {return max(nums[0],nums[1])} //배열이 2개인 경우 + + var dp = [nums[0], max(nums[0],nums[1])] + //제일 base가 되는 두 값을 찾는게 제일 중요함. + //nums[0]은 nums[1]보다 무조건 작아야함. + for i in 2.. Int { + guard nums.count != 0 else { return 0 } + + var sortednums = Array(Set(nums)).sorted() //중복제거 + 오름차순 정렬 + var maxcount = 1 //최대 카운드 + var count = 1 // 연산용 카운트 + + for i in 0.. [Int] { + var dic : [Int : Int] = [:] + + for i in nums { + dic[i] = dic[i , default : 0] + 1 + } + + var sortarray = dic.sorted{$0.value > $1.value} + var answer : [Int] = [] + + for i in 0.. [Int] { + for i in 0...nums.count-1{ + for j in i+1...nums.count-1{ + if nums[i] + nums[j] == target{ + return [i,j] + } + } + } + return [] + } + //i번째 인덱스의 값과, j번째 인덱스의 값이 target과 같으면 i,j를 리턴 +}