프로그래머스 LEVEL1 최상단에 있는 문제중 하나인 추억점수 문제입니다. 오랜만에 Swift 알고리즘 푸려고 들어왔다가 멘탈 잠깐나가서 이래저래 다시 감 좀 찾고 푸려니 그나마 잘 풀렸습니다. 이전에 해맷던 부분 이차원 배열로 주어진 입력값을 제대로 활용 할 방법을 몰랐다. 해결책 map 을 다른 문제에서 많이 써보면서 익숙해지고, forEach문도 익숙해지면서 배열도 map을 사용해서 하나씩 그 값을 가지고 올 수 있다는 걸 전에는 몰랐다... 문제는 대충 이렇다.. 해결 과정 문제파악 각각의 이름에 대한 점수를 부여하고 photo 배열에서 그 값을 더한 값을 새로운 배열에 넣는다. 모든 이름에 대한 변수를 만들고 이름을 넣어도 되지만, 이 문제는 기본적으로 Dictionary를 사용해서 메핑하는 것..
[##_revenue_list_upper##]
ios
[##_revenue_list_lower##]강의를 듣던 도중 UITextFieldDelegate 에 대해서 정리할 일이 생겼다. 사실 나는 노션으로 자잘한 것까지 다 기록해두지만 다른 사람이 볼 수 있는 블로그에는 조금 더 제대로 공부한 내용을 남기고 싶어서 아껴둔 것들이 많았는데 이 내용은 비교적 기초적인 내용으로 간단하게 집고 넘어가면 좋을 것 같아서 글을 썼다. 시작해보자. 먼저 UIKit에서 많은 오브젝트들이 Delegate 패턴을 사용해서 해당 클래스에 대한 동작을 구현하고 있다. 대표적으로 UITextField나 UITableView 같은 오브젝트들이다. Delegate?Delegate는 '대리자'라는 뜻이다. 즉 무언가를 대신하는 놈 이라는 뜻이다. 그렇다면 뭘 대신할까? UITextFieldDelegate, UITableViewDe..
기존에 Flutter로 만들었던 회사 프로젝트를 iOS에서 구현해 보려고 WebView를 사용하던 중 "This method should not be called on the main thread as it may lead to UI unresponsiveness." 이런 에러를 조우했다.. 일단 메세지를 잘 들여다보면 '어떤 메소드가 메인스레드가 아닌 곳에서 호출되었다 또는 메인스레드에서 호출되었어야 하는데 그렇지 못하였다' 류의 문제 같은데 검색을 하다보니 내 생각이 맞았다는 것을 알 수 있었다.. Apple Developer Forum에 있는 답변 및 검색 결과로 내가 직접 시도해 본 방법들인데, 1. Xcode에서 Thread Sanitizer 를 체크하고 build 해본다. 2. Dispatch..
회사 프로젝트 분석을 하던도중 lazy 로 선언된 변수를 사용한 것을 보았다. 솔직히 그 당시에 필요한 부분이 아니라서 넘어갔는데, 알고보니 compile 할때 상당히 중요한 부분이어서 기록했었던 것을 공유한다. 정의 A lazy stored property is a propery whose initial value is not calculated until the first time it s used => 처음 사용되기 전까지는 연산이 되지 않는 변수 즉, 미리 이 변수에 대한 내용을 설정해두고, 이 변수를 사용하기 전까지는 설정한 내용들에 대해서 연산이 되지 않는 다는 것. 좀 난해하지만 실제적인 예를 들어보자. 예를 들어서 인스타그램 어플에 있는 스토리보기 같은 기능들을 살펴보면 처음 앱을 이니셜 ..