본문 바로가기

전체 글49

[프로그래머스][LV.3][Swift] 여행경로(DFS & BFS) https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 여행경로 DFS 문제 설명 주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 "ICN" 공항에서 출발합니다. 항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해 주세요. 제한사항 모든 공항은 알파벳 대문자 3글자로 이루어집니다. 주어진 공항 수는 3개 이상 10,000개 이하입니다... 2023. 7. 2.
[Swift] Class에서 Final, Private를 쓰면 정말 성능이 향상될까? Class의 성능을 향상하기 위해서는 final 및 private을 사용하는 것이 권장됩니다. Swift의 Class와 Protocol은 모두 참조 타입(reference type)입니다. Class는 상속과 오버라이드가 가능해 컴파일 타임에서 적절한 타입을 추론할 수 없어 런 타임에서 결정되게 됩니다. 런 타임에서 Class는 V-Table, Protocol은 W-Table을 사용하여 Dynamic Dispatch를 수행합니다 앱 생성 시 대개 ViewController를 상속받아서 UIViewController 클래스와 함께 Dynamic Dispatch가 작동하도록 코드를 작성합니다. Dynamic Dispatch는 Static Dispatch에 비해서 성능이 뒤떨어질 수밖에 없는데요. 애플에서는 .. 2023. 6. 30.
[프로그래머스][LV.2][Swift] N개의 최소공배수 (유클리드 호제법) https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solutio.. 2023. 6. 28.
<좋은 사람이 된다는 것> 좋은 사람이 되면 왜 힘들까? 카카오 웹툰의 '퀴퀴한 일기'의 에피소드를 보면서 든 생각을 정리해봤습니다. https://webtoon.kakao.com/viewer/퀴퀴한-일기-686/216405 퀴퀴한 일기 - #683. 좋은 사람 | 카카오웹툰 내 주변에 반드시 한 명은 있을 것만 같은, 어쩌면 나 같기도 한 그녀의 일기. 어느덧 40대의 아기 엄마가 된 주인공 이보람과 그의 군단들의 이야기이다. 너무나 시시하고 쩨쩨해서 누구에게 털 webtoon.kakao.com 위 내용을 간략히 요약해 보자면 주인공의 첫 회사에 '좋은 선배'가 있었는데요. 주인공이 말도 안 되는 실수를 할 때마다 수습해 주고 혼내기는커녕 따뜻한 말로 "괜찮으니까 나가서 따뜻한 것 좀 마시고 와 얼굴이 사색이 됐네 사람이..." 같은 말로 오히려 실수한 사람.. 2023. 6. 26.
[프로그래머스][Lv.2] 완전탐색 - 카펫 (Swift) 문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다. 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 .. 2023. 6. 26.
[Swift] AnyObject 프로토콜 상속과 Any/AnyObject 사용을 지양하는 이유 Swift에서는 타입 안정성을 지향하기 때문에 Any/AnyObject를 사용하는 것은 지양됩니다. 이는 코드를 컴파일 시에 타입 안정성을 보장하기 위함입니다. 따라서, 가능하면 Any/AnyObject 대신에 구체적인 타입을 사용하는 것이 좋습니다. 그러나, 어떤 경우에는 클래스 인스턴스만 해당 프로토콜을 채택할 수 있도록 지정해야 할 때가 있습니다. 예를 들어, 다음과 같은 프로토콜이 있다고 가정해봅시다. protocol MyProtocol: AnyObject { func myFunction() } 이 프로토콜은 AnyObject 프로토콜을 상속하고 있기 때문에, 해당 프로토콜을 채택하는 클래스 인스턴스만 프로토콜을 채택할 수 있습니다. 따라서, 이 경우에는 Any/AnyObject 대신에 클래스 인.. 2023. 6. 13.
[iOS앱 개발] Google AdMob 배너광고를 앱에 추가해보자 [2] 지난 포스팅에서는 AdMob 계정을 생성하고, 내 앱을 등록하고, 배너광고를 생성하는 방법 까지 알아봤습니다. [iOS앱 개발] Google AdMob 배너광고를 앱에 추가해보자 [1] 앱 내 배너광고 이런 식으로 앱의 하단이나 상단에 배너광고를 보신적이 있으실껍니다. 내 앱에 구글 광고를 추가하게 위해서는 GoogleAdMob에서 앱을 추가하면 사용할 수 있는데요. 이번 포스팅에 jimmy-ios.tistory.com 이번 포스팅에서는 실제 프로젝트에서 배너광고를 띄우는 방법을 차근차근 알아보겠습니다. iOS 프로젝트에서 AdMob 시작하기 FireBase AdMob 공식 문서 Google AdMob 공식 문서 Firebase를 연동해 Google 애널리틱스를 사용하는 방법은 위에 firebase 문서.. 2023. 6. 11.
[iOS앱 개발] Google AdMob 배너광고를 앱에 추가해보자 [1] 앱 내 배너광고 이런 식으로 앱의 하단이나 상단에 배너광고를 보신적이 있으실껍니다. 내 앱에 구글 광고를 추가하게 위해서는 GoogleAdMob에서 앱을 추가하면 사용할 수 있는데요. 이번 포스팅에서는 AdMob에 내 앱을 추가하는 방법을 알아보겠습니다. Google AdMob 등록 방법 https://admob.google.com/home/ Google AdMob: 모바일 앱 수익 창출 인앱 광고를 사용하여 모바일 앱에서 더 많은 수익을 창출하고, 사용이 간편한 도구를 통해 유용한 분석 정보를 얻고 앱을 성장시켜 보세요. admob.google.com 위 링크를 통해 들어가서 시작하기 버튼을 누르면 계정을 만드는것부터 시작하게 됩니다 계정을 생성하고 나면 다음과 같이 시작하기 버튼을 누르면 내 앱을 등.. 2023. 6. 11.