분류 전체보기(228)
-
[UIkit] 이미지 사이즈에 따른 동적 컬렉션뷰 셀
🧸 시작컬렉션뷰셀이 이미지 사이즈에 따라 셀의 사이즈도 바뀐다! 🧸 폴더로 이동한다.import UIKitimport DesignSystemclass CustomCollectionViewController: UIViewController, UICollectionViewDelegate { var collectionView: UICollectionView! var imageList: [UIImage] = [] override func viewDidLoad() { super.viewDidLoad() // 이미지 목록 초기화 imageList = [ DesignSystemDemoAppAsset.shirt..
2025.02.03 -
[알고리즘] Swift -프로그래머스 연습문제 #258712(카카오 인턴십_가장 많이 받은 선물)
문제링크https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 분석 선물을 직접 전하기 힘들 때 카카오톡 선물하기 기능을 이용해 축하 선물을 보낼 수 있습니다. 당신의 친구들이 이번 달까지 선물을 주고받은 기록을 바탕으로 다음 달에 누가 선물을 많이 받을지 예측하려고 합니다. 두 사람이 선물을 주고받은 기록이 있다면, 이번 달까지 두 사람 사이에 더 많은 선물을 준 사람이 다음 달에 선물을 하나 받습니다. 예를 들어 A가 B에게 선물을 5번 줬고, (A -> B) B가 A에게 선물을 3번 ..
2024.11.13 -
[UIKit] Missing package product 'FirebaseCore'
🧸 시작의존성 관리를 Cocoapod에서 Swift Package Manager(SPM)으로 변경하면서 Firebase 설치오류가 나타났다.처음에는 캐시에 대한 문제때문인 줄 알고 빌드 클린 [Cmd] + [Shift] + [K] 도 하고 open ~/Library/Developer/Xcode/DerivedData해당 폴더에 남아있는 데이터도 지우고 다시 실행해보고 진짜 하루종일. 빌드만 했는데 실패.오류를 클릭하니까 나오는 메시지로... Pods/FirebaseCrashlytics/run: No such file or directory이렇게 나와있었다 FirebaseCrashlytics run 하는 것에 대한 오류 같은데 ... 너무 예전에 추가했어서 어떤 것을 수정했는 지 기억이 나지 않았다. ..
2024.11.12 -
[UIKit] 텍스트필드 입력(클릭) 시 키보드 올리기/내리기 (3): Rxswift
🧸 시작2024.11.08 - [SWIFT/UIKit] - [UIKit] 텍스트필드 입력(클릭) 시 키보드 올리기/내리기 (2): Snpakit [UIKit] 텍스트필드 입력(클릭) 시 키보드 올리기/내리기 (2): Snpakit🧸 시작이전 글에서는 스토리보드를 활용해 키보드가 올라오거나 내려갈 때마다 제약조건을 변경해 UI를 조정하는 방법을 사용했다. 이번 글에서는 코드 기반의 접근 방법으로 동일한 작업을nlestory.tistory.com 이전 글에서는 Snapkit과 NotificationCenter를 사용하여 키보드 이벤트를 처리하는 방법을 다뤘다면, 이번에는 RxSwift로 이 과정을 좀 더 간결하고 반응형으로 구현하는 방법을 구현할 예정이다.RxSwift를 활용하면 Notification..
2024.11.12 -
[UIKit] 텍스트필드 입력(클릭) 시 키보드 올리기/내리기 (2): Snpakit
🧸 시작이전 글에서는 스토리보드를 활용해 키보드가 올라오거나 내려갈 때마다 제약조건을 변경해 UI를 조정하는 방법을 사용했다. 이번 글에서는 코드 기반의 접근 방법으로 동일한 작업을 구현하려 한다. Snapkit 라이브러리를 이용하여 코드 기반 레이아웃 설정을 중심으로 다룰 것이다. 키보드가 화면을 가리는 문제를 해결하고 레이아웃을 조정하는 방법에 대해 설명할 것이다. 이 과정에서 NotificationCenter 을 사용한 키보드 알림 처리와 Snapkit을 사용하면서 유용한 방법을 소개할 것이다. 🧸 UI 구현먼저 스토리보드를 사용하지 않고 코드베이스로 UI를 구현하기 위해서 세팅을 해준다. 처음 세팅 방법은 아래 글을 참조하면 된다.초기 프로젝트 코드베이스로 세팅하기 [UIKit] 스토리보드..
2024.11.08 -
[GitHub] GitLab 커밋 잔디 동기화
🧸 시작매일 잔디 심기를 목표를 가지는 사람이 있을 정도로 개발자로서 잔디 심기는 꾸준함과 성장의 상징(?)처럼 여겨지고 있다.매일 커밋을 하고 새로운 코드를 작성하며, 지속적으로 프로젝트에 기여하는 것은 개발자의 실력을 쌓는 중요한 과정이다.이러한 꾸준함은 개발자로 성장하는 데 큰 도움이 된다. (근데 요즘에는 잔디때문에 커밋만 채우려고 하는 사람들이 생겨나서 잔디에 대해서 큰 의미를 두지 않는다고 하는 사람도 있긴 한거 같다)하지만 그것도 없는 거보다는 결과물이라는 게 존재하니까 좋은 거 같다. (좋은게 좋은 거죠 뭐 ㅎㅎ) 🧸 새로운 GitHub 레포지토리 준비본인의 깃허브에 새로운 레포지토리를 만든다.회사의 깃랩 주소를 옮기는 거라면 Private으로 하면 된다.git clone 새로운 레포지..
2024.09.20 -
[UIkit] Xcode pbxproj 충돌 해결방법
🧸 시작xcode의 프로젝트 패키지인 .pbxproj의 파일에서 충돌이 났을 경우에 어떻게 해결해야할 지 정말 귀찮은 일이다.일단 .pbxproj 파일은 프로젝의 파일이랑 폴더에 대한 정보를 가지고 있어 파일/폴더 추가, 수정 삭제 등의 내용이 반영된다.계속 파일이 추가되는 상황에서 여러 명의 사람이서 프로젝트를 할 경우에 자꾸 충돌이 나면 정말 화가 난다.그래서 이를 빠르게 해결하는 방법이 있다. 🧸 .git 파일이 존재하는 폴더로 이동한 후 .gitattributes 파일 생성vi .gitattributes명령어를 입력하던지 파일을 추가하여 .gitattributes 파일을 생성한다. 🧸 .gitattributes 파일을 열어 내용 추가*.pbxproj binary merge=union이렇게 ..
2024.05.20 -
[알고리즘] Swift -프로그래머스 연습문제 #181188(요격 시스템)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 A나라가 B나라를 침공했습니다. B나라의 대부분의 전략 자원은 아이기스 군사 기지에 집중되어 있기 때문에 A나라는 B나라의 아이기스 군사 기지에 융단 폭격을 가했습니다. A나라의 공격에 대항하여 아이기스 군사 기지에서는 무수히 쏟아지는 폭격 미사일들을 요격하려고 합니다. 이곳에는 백발백중을자랑하는 요격 시스템이 있지만 운용 비용이 상당하기 때문에 미사일을 최소로 사용해서 모든 폭격..
2024.04.05 -
[알고리즘] Swift -프로그래머스 연습문제 #136798(기사단원의 무기)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 숫자나라 기사단의 각 기사에게는 1번부터 number까지의 번호가 지정되어 있다 기사들은 무기점에서 무기를 구매하려고 한다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려한다. 단 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 한다..
2024.04.03 -
[알고리즘] Swift -프로그래머스 연습문제 #138477(명예의 전당 1)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/138477?language=swift 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 명예의 전당이라는 티비에서 매일 1명의 가수가 노래를 부르고 시청자들의 문자투표로 가수에게 점수를 부여한다. 매일 출연한 가수의 점수가 지금까지 출연 가수들의 점수 중 상위 k번째 이내이면 해당 가수의 점수를 명예의 전당이라는 목록에 올려 기념한다. 즉 프로그램이 시작 이후 초기에 k일까지는 모든 출연 가수의 점수가 명예의 전당에 오르게 된다. k일 다음..
2024.04.03 -
[Swift] ARC (Automatic Reference Counting), 강한참조(strong), 순환참조(retain cycle), 약한참조(weak), 미소유참조(unowned)
👉 ARC (Automatic Reference Counting) 이란? 힙은 메모리를 해제해주지 않으면 메모리누수가 발생하기 때문에 힙 영역의 메모리를 관리하는 방법 객체가 더 이상 필요하지 않을 때 메모리에서 자동으로 해제한다. 👉 ARC 장/단점 장점 개발자가 참조해제 시점을 파악할 수 있다. 런타임시점에 추가 리소스를 발생하지 않는다. 단점 순환참조 발생 시 영구적으로 메모리가 해제되지 않을 수 있다. 👉 RC (Reference Counting) 란? 객체를 현재 누가 가지고 있는 지(참조하고 있는 지)를 숫자로 나타낸 것 👉 RC 계산 시점 컴파일 타임에 언제 참조되고 언제 해제되는 지 결정되어 런타임때 그대로 실행한다. ✔️ 컴파일 / 런타임 컴파일(Compile): 작성된 소스코드를 컴퓨터..
2024.03.29 -
[알고리즘] Swift -프로그래머스 연습문제 #86971(전력망을 둘로 나누기) -BFS
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 송전탑이 전선을 통해 하나의 트리 형태로 연결 당신은 이 전선들 중 하나를 끊어서 현재 전력망 네트워크 2개로 분할하려고 한다 이 때 두 전력망이 갖게 되는 송전탑의 개수를 최대한 비슷하게 맞추고자 한다 송전탑의 개수 n 그리고 전선 정보 wires가 매개변수로 주어질 때 전선들 중 하나를 끊어서 송전탑 개수가 가능한 비슷하도록 두 전력망으로 나누었을 때 두 전력망이 가지고 있는 송..
2023.11.18 -
[알고리즘] Swift -프로그래머스 연습문제 #43163(단어 변환)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 begin target과 단어의 집합 words가 있을 때 규칙을 이용하여 begin->target으로 변환하는 가장 짧은 변환 과정을 찾는다 1. 한번에 한개의 알파벳만 바꿀 수 있다. 2. words에 있는 단어로만 변환할 수 있다. begin: hit / target: cog words: [hot, dot, dog, lot, log, cog] hit hot dot dog cog..
2023.11.09 -
[알고리즘] Swift -프로그래머스 연습문제 #43162(네트워크)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 컴퓨터 에이와 비가 직접적으로 연결되어있고 비와 씨가 직접적으로 연결되어있을 때 에이와 씨도 간접적으로 연결되어 정보를 교환할 수 있다 컴퓨터의 수 n 연결에 대한 정보가 담긴 2차원배열이 주어질 때 네트워크의 개수구하기 풀이 func solution(_ n:Int, _ computers:[[Int]]) -> Int { var count: Int = 0 var check = Arra..
2023.11.09 -
[알고리즘] Swift -백준 #4963(섬의 개수)
문제링크 https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 분석 섬의 개수를 세는 프로그램 한 정사각형과 가로 세로 대각선으로 연결되어 있는 사각형은 걸어갈 수 있는 사각형이다 두 정사각형이 같은 섬에 있으려면 한 정사각형에서 다른 정사각형으로 걸어서 갈 수 있는 경로가 있어야한다 지도 밖으로 나갈 수 없다 여러개의 테스트케이스로 이루어져있음 너비w, 높이h 둘째줄부터 h개 줄에는 지도 (1은 땅, 0은 바다) 마지막 입력은 0 0 풀이 i..
2023.11.08 -
[알고리즘] Swift -프로그래머스 연습문제 #86051(없는 숫자 더하기)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/86051 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 import Foundation func solution(_ numbers:[Int]) -> Int { var sum = 45 for i in numbers { sum -= i } return sum }
2023.06.27 -
[알고리즘] Swift -프로그래머스 연습문제 #12912(두 정수 사이의 합)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/12912 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 func solution(_ a:Int, _ b:Int) -> Int { var result = 0 if a == b { return a } var first = a b ? a : b for i in first...second { result += i } return result }
2023.06.27 -
[알고리즘] Swift -프로그래머스 연습문제 #181916(주사위 게임 3)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/181916 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 1부터 6까지 숫자가 적힌 주사위 4개가 있다. 4 주사위를 굴렸을 때 나온 숫자에 따라 다음과 같은 점수를 얻습니다. 4 주사위에서 나온 숫자가 모든 p로 같다면 1111xp 점을 얻는다. 3 주사위에서 나온 숫자가 p로 같고 나머지 다른 주사위에서 나온 숫자가 q(p ≠ q)라면 (10 × p + q)2 점을 얻는다. 주사위가 2개씩 같은 값이 나오고 나온 숫자를 p, q(p ..
2023.06.08 -
[알고리즘] Swift -프로그래머스 연습문제 #181893(배열 조각하기)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/181893 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 정수배열 arr 와 query 가 주어진다. query 를 순회하면서 다음 작업을 반복한다. 짝수 인덱스에서는 arr에서 query[i]번 인덱스를 제외하고 배열의 query[i]번 인덱스 뒷부분을 잘라서 버린다. 홀수 인덱스에서는 arr에서 query[i]번 인덱스를 제외하고 배열의 query[i]번 인덱스 앞부분을 잘라서 버린다. 위 작업을 마친 arr의 부분 배열을 리턴하는 ..
2023.06.07 -
[알고리즘] Swift -프로그래머스 연습문제 #133502(햄버거 만들기)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/133502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장을 하게 된다. 상수가 일하는 가게는 정해진 순서(아래부터, 빵-야채-고기-빵)으로 쌓인 햄버거만 포장을 한다. 상수는 손이 빠르기 때문에 포장하는 동안 속 재료가 추가적으로 들어오는 일은 없다. 재료..
2023.06.07