👨🏻‍💻iOS 공부/Swift_알고리즘 풀이

    [LeetCode] Array (3)

    오늘은 한 문제 풀이..! 1. Rotate Image 말 그대로 이미지를 시계방향으로 회전시키는 것이 목표이다. 이미지는 수의 배열들로 표현이 되기에, 결국엔 Matrix를 회전시키는게 목표이다! 머신러닝 공부를 하면서 transpose 개념을 조금 접해서 그런지 transpose하는 방법으로 생각해보았다. (numpy T 사용하고 싶은 욕구..) 우선 예시로 이해해보자. // Input 배열 [ 1, 2, 3 ] [ 4, 5, 6 ] [ 7, 8, 9 ] // Output 배열 [ 7, 4, 1 ] [ 8, 5, 2 ] [ 9, 6, 3 ] // 수행 과정 [ 1, 2, 3 ] [ 4, 5, 6 ] [ 7, 8, 9 ] // 1. 먼저 transpose [ 1, 4, 7 ] [ 2, 5, 8 ] [ ..

    [LeetCode] Array (2)

    Array 문제 풀이 두 번째 시간! 1. Rotate Array 배열을 회전시킨다...? 무슨 뜻일까.. 회전이라기 보다는 배열의 마지막 원소를 가장 맨 앞으로 옮기는 작업 요구하고 있다! (k의 수 만큼 원소들을 이동해줘야 한다.) // k = 3 [1,2,3,4,5,6,7,8] // [6,7,8,1,2,3,4,5] 가 된다. // [8,1,2,3,4,5,6,7] // [7,8,1,2,3,4,5,6] // [6,7,8,1,2,3,4,5] // 위 프로세스로 수행이 되는 형태이다! 하나씩 옮기면 될 것 같은 생각이 든다. class Solution { func rotate(_ nums: inout [Int], _ k: Int) { // k가 0이면 움직일 필요 없음 if (k == 0) { return..

    [LeetCode] Array (1)

    LeetCode내 Easy모음집에서 먼저 풀이를 해볼 예정입니다~! 풀면 풀수록 먼저 문제를 정확하게 이해하는 것이 중요하다는 것을 깨닫습니다... 우선 Array내에 풀고 싶은 문제들 먼저~! 1. Remove Duplicates from Sorted Array 배열 내의 중복된 원소들을 제거하는 것이 목표이다. 다만 새로운 배열을 만들지 않고(복사X) 기존 배열을 재배치하는 것이 주 포인트이다. [1,1,2,3,3,3] // [1,2,3]을 리턴해야함 그리고 기본적으로 배열들은 오름차순으로 정렬되어있는 상태이기에, 중복된 원소만 신경쓰면 된다. class Solution { func removeDuplicates(_ nums: inout [Int]) -> Int { // 길이 0일때, 예외처리 if ..

    [프로그래머스] 정렬 - K번째수, H-Index

    [1번 - K번째 수] 배열을 정렬한 후, 원하는 index의 값을 찾아내는 과정이다. import Foundation func solution(_ array:[Int], _ commands:[[Int]]) -> [Int] { var res: [Int] = [] for com in commands { var newArray = array[com[0]-1...com[1]-1].sorted() res.append(newArray[com[2]-1]) } return res } [프로세스] 1. 배열을 자른다. 2. 배열을 정렬한다. .sorted를 사용한다. by : 파라미터의 default 값이 < 이기에 오름차순으로 정렬된다. 3. 배열을 인덱싱한다. 크게 어려움 없이 풀이 완료! [2번 - H-Index..

    [프로그래머스] 해쉬 - 위장

    옷 종류를 겹치지 않게 입는 경우의 수에 대한 문제이다. func solution(_ clothes: [[String]]) -> Int { var res: Int = 1 let clothesMapped = clothes.compactMap {($0.last,1)} let cnt = Dictionary(clothesMapped, uniquingKeysWith:+) for (_,value) in cnt { res *= (value+1) } return res - 1 } [프로세스] 1. 결과를 담을 res 변수를 생성한다. 2. [[String]] 배열에 .compactMap을 적용한다. 2-1. [[String]] 내에 [String]을 $0을 통해 불러온다. 2-2. Clothes Type이 위치한 배열..

    [Swift] Swift 값 입력, 비교

    Alice and Bob each created one problem for HackerRank. A reviewer rates the two challenges, awarding points on a scale from 1 to 100 for three categories: problem clarity, originality, and difficulty.The rating for Alice's challenge is the triplet a = (a[0], a[1], a[2]), and the rating for Bob's challenge is the triplet b = (b[0], b[1], b[2]).The task is to find their comparison points by compar..