전체 글
-
[iOS] SQLite DB 확인하기ios/ios 2024. 6. 10. 16:57
SQLite를 사용하기 위해 DB테이블에 값들이 잘 처리되어 있는지 확인해야 할 경우가 있습니다. SQlLite는 내장 데이터베이스이기 때문에 앱 파일안에서 DB파일을 찾아내서 테이블을 확인할 수 있습니다. 먼저 SQLite 프로그램을 설치해야 합니다. 아래 설치링크에서 자신의 운영체제에 맞게 설치하시면 됩니다 저는 맥을 사용하기 때문에 mac OS로 설치를 했습니다.https://sqlite.org/download.html SQLite Download PageTemplates (1) and (2) are used for source-code products. Template (1) is used for generic source-code products and templates (2) is used f..
-
[Swift] 알고리즘 공부 - N개의 최소공배수알고리즘 공부/프로그래머스 2024. 3. 10. 20:02
문제 설명 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요. 제한 사항 arr은 길이 1이상, 15이하인 배열입니다. arr의 원소는 100 이하인 자연수입니다. 입출력 예 arr result [2, 6, 8, 14] 168 [1, 2, 3] 6 설명 1. 최대 공배수와 최소공배수를 구하는 방법을 알아야한다. func solution(_ arr: [I..
-
[Swift] 알고리즘 공부 - 점프와 순간이동알고리즘 공부/프로그래머스 2024. 3. 10. 18:59
문제 설명 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈트는 건전지로 작동되는데, 순간이동을 하면 건전지 사용량이 줄지 않지만, 앞으로 K 칸을 점프하면 K 만큼의 건전지 사용량이 듭니다. 그러므로 아이언 슈트를 착용하고 이동할 때는 순간 이동을 하는 것이 더 효율적입니다. 아이언 슈트 구매자는 아이언 슈트를 착용하고 거리가 N 만큼 떨어져 있는 장소로 가려고 합니다. 단, 건전지 사용량을 줄이기 위해 점프로 이동하는 것은 최소로 하려고 합니다. 아이언 슈트 구매자가 이동하려는 거리 N이 주어졌을 때, 사용해야 하는 건전지 사용량의 최솟값을 return..
-
[Swift] 알고리즘 공부 - 영어 끝말잇기알고리즘 공부/프로그래머스 2024. 3. 10. 18:17
문제 설명 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다. 이전에 등장했던 단어는 사용할 수 없습니다. 한 글자인 단어는 인정되지 않습니다. 다음은 3명이 끝말잇기를 하는 상황을 나타냅니다. tank → kick → know → wheel → land → dream → mother → robot → tank 위 끝말잇기는 다음과 같이 진행됩니다. 1번 사람이 자신의 첫 번째 차례에 tank를 말합니다. 2번 사람이 자신의 첫 번째 차례에 ..
-
[ios] Clean Architecture + MVVM-C (1)ios/ios 2024. 3. 9. 19:46
처음에 만들었던 프로젝트를 구경하다가 코드가 매우 지저분하다고 느낀 적이 있습니다. 유지보수를 위해서는 기능, 역할에 따라 코드를 잘 분리하고 분리하기 위해서는 좋은 아키택처를 사용해야 합니다. 그래서 Clean Architecture와 MVVM에서 뷰의 관리를 따로 두는 MVVM-C를 공부해 보았습니다. 먼저 MVVM은 Model, ViewModel, View 3가지의 계층으로 코드의 역할을 분리한 아키택처입니다. Model - 애플리케이션에서 데이터를 나타냅니다. - 데이터를 가져오고 저장하는 역할을 수행합니다. View - 시각적인 요소를 나타냅니다. (UI, Layout) - 사용자의 입력을 받고 정보를 표시하는 역할을 합니다. ViewModel - View와 Model의 중간 매개체로써 뷰에 데..
-
[Swift] 알고리즘 공부 - 카펫알고리즘 공부/프로그래머스 2024. 2. 13. 23:41
문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다. 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 ..
-
[Swift] 알고리즘 공부 - 짝지어 제거하기알고리즘 공부/프로그래머스 2024. 2. 6. 19:03
문제 설명 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 b aa baa → bb aa → aa → 의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다. 제한사항 문자열의 길이 : 1,000,000이하의 자연수 문자열은 모두 소문자로 이루어져 있습니다. ..
-
[iOS] Coordinator 패턴ios/ios 2024. 2. 5. 18:26
Coordinator패턴? 앱을 제작할 때 다양한 아키택처 패턴을 자주 사용합니다. 그중 MVVM 아키텍처 패턴을 사용하는 이유 중 하나는 "ViewController가 하는 일을 줄이자"입니다. 기존 MVC 패턴에서는 ViewController가 너무 많은 일을 하기 때문에 그중 비즈니스 로직을 viewModel 계층에 넘겨서 ViewController 가 하는 일을 줄이게 되었습니다. MVVM-C 패턴도 마찬가지로 ViewController가 하는 일을 줄이기 위해 만들어진 패턴입니다. 뷰를 이동하는 코드를 작성할 때 ViewController에서 push/pop, present/dismiss를 구현해서 사용했습니다. 뷰가 간단하면 관리가 쉽겠지만 복잡해진다면 관리가 어려워집니다. 따라서 MVVM-C..