분류 전체보기
-
[Swift] 크레인 인형뽑기 게임 - 2차원 배열developing study 2024. 9. 5. 17:27
LV1.의 난이도 낮은 문제였고 이차원 배열 개념을 잊어 시간이 걸렸다............이차원 배열 표현시 가로, 세로를 어떻게 표현하는지 잊지 말자... 쫌 문제 보기더보기게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다."죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다.게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 "1 x 1" 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡..
-
[Swift] 탐욕법developing study 2024. 9. 2. 12:05
탐욕법 문제를 오래간만에 풀게 됐는데 처음에 탐욕법 유형 문제인지 모르고 DFS로 생각해서 해결 방법을 생각해보다가 아예 시간이 오바돼버림...그래서 탐욕법 간단히 다시 복기할 겸 정리 탐욕법(Greedy)각 단계마다. 매 순간. 지금 당장(최적의 해) 가장 좋은 방법만을 선택.이렇게 구한 방법으로 나온 해 = 전체 최적 해가 되는 경우에만 사용 가능. 특징동적 계획법보다 수행 시간이 빠르다.문제 유형을 바로 파악할 수 없는 경우 탐욕법을 생각해보기기준에 따라 좋은 것, 가장 큰 순서대로와 같은 "기준"이 제시됨.정렬 알고리즘과 같이 출제되는 경향"가장 큰", "가장 작은" 과 같은 기준이 제시돼 있을 경우 힌트 예제LV1. 체육복문제Lv2. 큰수만들기 프로그래머스코드 중심의 개발자 채용. 스택 기반의..
-
[Swift] 프로그래머스 - 다리를 지나는 트럭developing diary 2024. 9. 2. 11:01
추상화된 생각을 코드로 풀어쓰는게 어려웠던 문제다.그리고 문제에 조건도 주어지지 않았지만 찾아내야 했다. 처음에 조건을 잘못 이해하고 sort이용해서 풀다가 생각해낸 풀이로 테스트 케이스는 맞췄다. func solution(_ bridge_length:Int, _ weight:Int, _ truck_weights:[Int]) -> Int { var currentSum : Int = 0 var currentIdx : Int = 0 var currentQueue = Array(repeating: 0, count: truck_weights.count) var answer = 0 while currentQueue[truck_weights.co..
-
[iOS] kakao login 함수 호출 과정developing diary 2024. 8. 29. 22:14
카카오 로그인 문서 Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com 카카오 로그인을 붙이는 과정에서 함수 호출 과정이 헷갈렸던 부분 정리. 카카오 로그인 과정은 아래와 같다고 한다. 그래서 크게 보면 토큰을 먼저 확인 & 카카오 계정 로그인 관련 함수들을 호출하는 순서다. 사전 설정플랫폼 등록카카오 로그인 활성화 동의항목OpenID Connect 활성화(선택)간편가입(선택)위와 같은 들을 모두 했다고 가정하고UserApi의 함수 호출을 해봤다.UserApi.shared.loginWithKakaoAccount {(oauthToken, error) i..
-
[Swift] ArraySlicedeveloping study 2024. 8. 26. 14:55
프로그래머스에서 햄버거 만들기 Lv.1문제를 풀었는데 무심코 썼던 것들이 걸려서 계속 통과되지 못하는 상황들이 발생하게 됐다.그래서 이건 기록해야해하고 알게 된 것들이 있어서 얼른 기록...!!우선, 참고로 문제는 참고더보기햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장을 하게 됩니다. 상수가 일하는 가게는 정해진 순서(아래서부터, 빵 – 야채 – 고기 - 빵)로 쌓인 햄버거만 포장을 합니다. 상수는 손이 굉장히 빠르기 때문에 상수가 포장하는 동안 속 재료가 추가적으로 들어오는 일은 없으며, 재료의 높이는..
-
[Swift] Combine - sinkdeveloping study 2024. 8. 25. 21:51
공부했던 내용 잊지 않기 위해 기록해두는 내용 sinkAnyCancellableClass Cancellable프로토콜을 채택한 클래스임.A type-erasing cancellable object that executes a provided closure when canceled.@available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)final public class AnyCancellable : Cancellable, Hashable { }AnyCancellable 인스턴스가 deinit시에 Cancellable/cancel을 자동으로 call.-type-erasing associatedtype 제네릭(generic type과 어떤 점이 다른지)..
-
TCA 적용해 iOS앱 만들기 - 첫번째developing study 2024. 8. 24. 19:23
서문.사이드 플젝에서 TCA를 처음 적용해 보게 되면서 겪게 된, 겪고 있는 우당탕탕을 기록해보고자 한다.개발 할 때 Swift언어만 같지 새로운 틀이라고 할까 그런 것들을 많이 적용해보게 된다. MVVM, Clean Architecture 등등..TCA는 처음 써보려고 할 때 이건 또 뭘까? 되게 복잡해 보인다고 생각했는데 지금 적용중인 상황에서는 오히려 되게 깔끔하기도 하고 적응되면 확실히 깔끔해지겠구나 생각이 든다.이게 뭔지, 왜 적용하는지 잊지 않기 위해 다시 정리해보고자 기록을 시작. TCA란?의미 : Architecture Pattern으로 The Composable Architecture의 약자.compose구성하다의 영어 의미에서 확장해 개발쪽에서는 '필요에 따라 구성이 가능한'이라는 유..
-
Swift - 비트연산자developing study 2024. 1. 24. 22:02
지도 문제를 푼 후 다른 사람의 풀이를 보다가 알게 된 것./// arr1 :[Int], arr2[Int]/// 0부터 n까지 map으로 도는 클로저 안의 코드String(arr1[$0] | arr2[$0], radix: 2)문제를 간략히 말하면2개의 10진수로 된 숫자를 2진수로 변환했을 때 각 이진수를 비교하는 상황이다.둘다 0인 경우와 하나라도 1인 경우를 구분해줘야 했다. 이때 비트 연산자를 사용해 쉽게 풀 수 있는 문제였다.비트연산자란한 개 혹은 두 개의 이진수에 대해 비트(bit)단위로 논리 연산을 할 때 사용하는 연산자비트 단위로 전체 비트를 왼쪽이나 오른쪽으로 이동시킬 때도 사용. 종류비트 연산자에는 &, |, ^, ~, > 이렇게 있는데 이번에 새로 알게된 연산자도 있었다..1) AND ..