세상을 더 편리하게
article thumbnail
[iOS / Swift] Cache
Swift/Apple Framework 2023. 4. 19. 01:10

내가 알던 캐쉬.... 메이플 스토리에 옛날에 엄마에게 허락 받고 질렀던 캐쉬가 생각난다. 그 때는 틴캐쉬라고 문방구에서 사서 팔았는데 하하하;; 머쓱해지니 본론으로 넘어가자. 본론 데이터나 값을 미리 복사해 놓는 임시 장소 캐시의 정의이다. 그럼 우리는 왜 임시 보관을 해둬야 할까? 그 답은 빠르기 때문이다. 네트워크 통신은 기기에서 이미지를 불러오는 것보다 훨씬 느리다. 그렇기에 캐쉬를 통해 성능 향상을 기대 할 수 있다. 또한 서버에 매 번 똑같은 요청을 하게된다면 서버는 부담스러울 것이다. 서버입장에서도 캐시된 이미지를 활용하는 것이 좋다. 캐쉬 종류 캐쉬의 종류에는 2가지가 있다. Memory Cache Disk Cache Memory Cache는 RAM 상에 데이터를 저장하는 방식이다. RAM..

article thumbnail
[SwiftUI] LazyVGrid / LazyHGrid
Swift/Apple Framework 2023. 4. 18. 23:29

1. Grid 사전상 6번의 뜻인 표를 의미한다. 그럼 LazyVGrid와 LazyHGrid를 비교하기 전에 둘의 생성자를 비교해보자 놀랍게도 둘의 생성자의 파라미터는 같다. 여기서 필수적으로 명시해야하는 파라미터는 columns 이다. 여기에 더 초점을 맞춰보자. 공식 문서를 보면 row의 column의 설명하는 것이라고 쓰여있고 생성자를 보면 size, spacing, alignment가 표시 되어있음을 알 수 있다. 다시 말하면 GridItem으로 표의 각 셀의 크기를 지정할 수 있다는 것이다. LazyVGrid VStack처럼 Grid형식이 위아래 방식으로 진행된다. columns 의 배열의 개수는 열의 개수를 의미한다. 그리고 각 GridItem이 열의 특성을 지정한다. LazyHGrid HSt..

article thumbnail
[프로그래머스 / Swift] 카드 짝 맞추기

문제 접근 dfs로 문제를 풀고 싶었는데 너무 많은 호출을 하게 되어서 dfs 대신에 bfs로 접근하였다. 하지만 bfs로도 문제가 풀기는 힘들었다. 문제를 하나 하나 뜯어보자. 문제 풀이 문제를 풀기 위해서 접근해야 할 것은 몇 번 카드부터 시작 할 것인가? ( 카드를 맞추는 순서는 어떻게 할 것인가? ) A -> B로 접근하기 위해서 가장 가까운 루트는 어떻게 구할 것인가? 이다. 하나씩 뜯어보자. 몇 번 카드부터 시작할 것인가? 1번부터 6번 카드까지 어떤 순서대로 풀어낼 것인가에 대해서는 순열을 통해서 문제를 풀어야한다. func permutate(_ elements: [Int]) -> [[Int]] { var result = [[Int]]() var visited = [Bool](repeatin..

article thumbnail
[프로그래머스 / Swift] 사라지는 발판

문제 접근 & 문제 풀이 사실 완전 탐색이라는 것은 느낌이 왔다. 왜냐하면 최대가 5*5 짜리 발판이기 때문이다. 이러면 시간초과가 나는 일을 없을 것이라 생각이 들었다. 하지만 50% 이상 점수 맞기가 힘들었다. 결국은 못 풀고 해설지를 봤다. 음... 문제를 해석하고 그 해석을 코드를 얼마나 잘 구현하냐가 이 문제의 관건인것 같다. 그래서 이번에는 문제 풀이와 접근을 같이하려고 한다. 전체 코드 더보기 import Foundation func solution(_ board:[[Int]], _ aloc:[Int], _ bloc:[Int]) -> Int { let maxY = board.count - 1 let maxX = board[0].count - 1 let dy = [1, -1, 0, 0] let..