gustn3964의 등록된 링크

키자드에 등록된 총 137개의 포스트를 확인하실 수 있습니다.

Naver Blog

커스텀뷰로 이미지에 삭제버튼 달아보자 - swift

iOS 개발자 단톡방에서 어떤분이 (아래이미지처럼) 이미지피커에서 가져온 이미지에 삭제버튼이 있는 건 어떻게 만드는거냐고 질문을 하셨다.답변이 그렇게 많지 않았는데, 실력있는 개발자분들이 커스텀뷰라고 했다. 그래서 나도 커스텀뷰로 만들어봤다. 결과물 나름 최대하게 비슷하게 만들어봤다.구현방법 저 질문을 보았을때 딱 떠오른 생각은 View안에 UIImageView와 UIButton을 넣으면 되겠다고 생각했다. UIView를 subclass로 새로만든다.UIView를 상속했으므로, 이클래스는 자동적으로 view가 존재하게 된다. UIImageView를 만들고, view에 추가하고, constraint를 적용한다. UIButton도 만들고, view에 추가하고, const.......

Naver Blog

트리 트리오 중간값 - 월간코드챌린지 시즌1 - swift

https://programmers.co.kr/learn/courses/30/lessons/68937문제 속 함정을 피하고 핵심을 이해했습니까?! 아니요. 이해못해서 못풀었습니다. 1시간30분동안 풀다가 맞는거 같은데 답이 계속 틀려서 슬쩍 해설을 봤습니다. 딱 "지름" 이라는 키워드를 보고 바로 떠올랐고, 바로 풀렸습니다. 문제지문에서는 "지름"이라는 단어가 하나도 등장하지 않습니다. 당연히 많이 문제를 접하신 분들은 아 이게 가장긴지름들을 구하라는 얘기구나 하고 이해하겠지만, 저처럼 아직 초보인사람들은 여러 혼란을 주는 덫에 걸려가지구 핵심을 파악하지 못했습니다. 노드의 개수는 25만개, 3개를 선택한 모든 경우의 수.. 도대체 2.......

Naver Blog

스토리보드로 ScrollView 생성 및 constraint 설정

연습하던 도중 scrollView에 constraint를 지정하는데 자꾸 빨간색이 뜬다.내가 이해한 constraint대로 주면 될텐데 왜자꾸 빨간색이 뜨는지,, 혈압이 올랐다. 다른 분들의 블로그를 참고하여 배우고 정리해봤다. 우리가 생각하는 constraint는 통하지 않아요! scrollView를 생성하고, 좌우위아래 constraint를 줬는데 빨간색이 뜬다.여기서부터 다들 저처럼 왜안되지?!! 싶을거다. 인내심을 가져보자. 빨간색이 뜨는 이유는 반은 맞고, 반은 틀리기 때문이다.반은 맞는이유는, 맞게 constraint를 잘 주었다. 잘했습니다! 하지만 반은 틀린이유는, 반이 부족하기 때문이다. 그 반이란, scrollView안에 보여줄 content ( label,button,i.......

Naver Blog

처음 시작하는 storyBoard 변경하기

처음 시작 Storyboard를변경하고 싶다면, Targets - General - Deployment Info - 에서 변경만 해주면 됐었는데, 추가적으로 변경해주어야한다.info.plist에서 2개 변경해줘야한다.

Naver Blog

치킨배달 - 백준 15686 - swift

https://www.acmicpc.net/problem/15686치킨집이 많으면 많을수록 좋겠지? 문제의 답은 도시의 치킨 거리의 합이 가장 최소인 값을 찾는거다.도시의 치킨거리는 각 집마다 가장 가까운 치킨집의 거리들의 합이므로, 치킨집은 많으면 많을수록 , 각 집마다 선택지가 많아지므로 문제의 답또한 최소가 될수밖에 없다는 생각이 들었다.그래서 최대 M개의 치킨집을 고를 수 있는데, 치킨집들에서 M개의 조합을 선택하여 가장 최소의 거리들 더한 값을 찾으면 되겠다고 생각했다. 처음에는 N이 최대 50이고, 집은 최대 2*N개이므로, 최대 100개이고, 치킨집들은 50*50 - 100개 = 최대 2400개가 될수도 있으니, 2400개안에서 1~M까.......

Naver Blog

네모네모시력검사 - 백준 18242 - swift

https://www.acmicpc.net/problem/18242문제는 너무 쉬워보이지만, 어떻게 구현한담? 문제를 다 읽고나니 어떤 답을 구하라는지는 금방 이해해서 너무 쉬운거 아니야? 생각했지만, 잠시뒤 근데 어떻게 구현한담? 생각이 들었다.우선 색칠된 한변의 길이를 얻자.생각을 좀 더 한뒤, 우선 색칠된 한변의 길이가 몇인지 얻는게 나을 거라고 생각했다.양 옆 사이드는 무조건 색칠된 한변의 길이를 얻을 수 있겠다.입력을 받을 때, 처음인지 조건을 걸어주면서 + 1 하면 한변의 길이를 얻을 수 있고,가장 처음에 나타나는 색칠된 한변의 좌표를 얻으면 해당 좌표와 한변의 길이를 통해 각각 위,아래,왼쪽,오른쪽들의 위치를 구할 수 있다라고.......

Naver Blog

A->B - 백준 16953 - swift

https://www.acmicpc.net/problem/16953시간 15분 걸렸다. 이런 문제는 DP 를 이용하는 것 같은데.. DP를 구현하려면 값이 반복되는 경우가 많고 계산시간을 단축시킬 수 있는 방법을 생각해야하는데 떠오르지가 않았다. 그래서 DP방법은 패스했다. 잠깐, 제한시간이 2초나된다고? 게다가 경우의수는 두가지 방법밖에 없으니 ( 2를 곱하거나, 뒤에 1을붙이거나 ) 완전탐색해도 될 것 같았다.게다가 연산하다가 B보다 커지면 return 하면 그만이니 충분할 것 같았다. 그렇게해서 푸니 맞았다. 코드

Naver Blog

감소하는 수 - 백준 1038 - swift

https://www.acmicpc.net/problem/1038시간 35분 걸렸다. 패턴이 있을까? 처음에는 감이 안와서 10까지일때, 20까지일때, 30까지일떄, 감소하는 수들이 몇개인지 파악하다가 어떤 패턴이 보이는 것 같지만, 이 패턴을 어떤 식으로 나타낼지를 모르겠다. 그래서 이방법은 패스했다" N번째 감소하는 수가 없다면.. " 다음으로는, N번째 감소하는 수가 없다라는 문장을 이해하도록 했다. 감소하는 수가 없을 수가 있나? 해서 생각해보니 987654210 이 수다음으로는 감소할 수가 없구나 이해했다. 각 첫번째 값이 중요할 것 같았다재귀함수로 구현하면 되겠다. 그 다음 재귀함수가 떠올랐다. 0,1,2,3,4,5,6,7,8,9 숫자안에서 가.......

Naver Blog

간단하게 UICollectionView 알아보자

구성 UICollectionView UICollectionViewLayout or UICollectionViewFlowLayout UICollectionViewCell UIColelctionView - Delegate , DataSource UICollectionReusableView ( optinal ) - supplementary View UICollectionViewUICollectionView 는 다양한 커스텀레이아웃이 가능하다. ( 동그란레이아웃 등등 ) UICollectionView는 UITableView와 비슷하게 UIScrollView의 subclass이다. UICollectionView도 UITableViewCell처럼 Cell이 있다. 프로그래밍 또는 인터페이스빌더로 생성될 수 있다. Cell이에 포함되지 않으면서 UICollectionView에 포함되면서 다른정보를 주고 싶을때는 Supplementary View 를 사용할 수 있다. headers, .......

Naver Blog

간단하게 UICollectionView Custom Layout 만들어보자

구조 자체는 간단하지만, item들의 사이즈들을 계산할때는 조금 머리를 써야한다. UICollectionViewLayout 애플에서 제공하는 UICollectionViewFlowLayout으로도 충분하지만, Custom Layout 을 만들어야 하는 경우도 생긴다. UICollectionViewLayout 의 subclass로 만든다.이 클래스는 모든 아이탬들의 Visual attributes를 명시한다. 각각의 attribute는 UICollectionViewLayoutAttributes의 인스턴스이다. 이것은 frame, transform같은 각 아이템의 프로퍼티를 포함하고있다.즉, attribute에는 item들의 사이즈가 담겨있고, 이것들을 계산해서 가지고 있어야한다. UICollectionViewLayout 만들기 UICollectionViewLayout을 s.......

Naver Blog

미세먼지 안녕! - 백준 17144 - swift

https://www.acmicpc.net/problem/17144열심히 지문대로 구현하자. 문제의 답을 구현하기까지 과정은 어렵지 않게 도출할 수 있다. 1초안에 미세먼지의 확산이 먼저일어나고, 그다음 공기청정기의 라인별로 한칸씩 움직이며 흡수된다. 중요한점은 확산과 공기청정기라인별로 움직임지는 점이다. 확산은 동시에 일어나므로, 일시적인 배열을 생성해야한다.일시적인 배열안에 확산되는 미세먼지와 확산되고 남은 미세먼지들을 저장하고 있어야한다. 확산되고 난후, 일시적인 배열들을 다시 원래배열에 더해준다. 전체적인 시간복잡도는 대충잡아보면, 확산및 더하는 부분은 (5*60)*2 = 600 공기청정기의 움직임은 5*60 = 3.......

Naver Blog

간단하게 CollectionView - Compositional Layout 구현하기

참고 https://www.raywenderlich.com/5436806-modern-collection-views-with-compositional-layouts요약 iOS 13 부터는 커스텀 layout대신 좀 더 간단하게 구현할 수 있는 UICollectionViewCompositionalLayout이 생겼다. UICollectionViewCompositionalLayout 을 구성하는데 필요한 객체들은, NSCollectionLayoutItem, NSCollectionLayoutSize , NSCollectionLayoutGroup , NSCollectionLayoutSection 이 있다 UICollectionViewCompositionalLayout이런 다소 복잡한 레이아웃은 UICollectionViewFlowLayout으로는 불가능하다. iOS 13 이전까지는 UICollectionViewFlowLayout을 사용하거나, 그 이상의 다양한 레이아웃.......

Naver Blog

쿼드압축 후 개수 세기 - 월간코드챌린지 시즌 1 - swift

https://programmers.co.kr/learn/courses/30/lessons/68936저는 월간코드챌린지때 보지 않았고, 프로그래머스에 올라온 문제를 풀었습니다. 분할정복을 재귀함수로 구현하기 이런문제유형을 한번만 이해하고 나면 쉽다.지문그대로 정사각형안에 다른숫자가 포함된다면 4분면으로 나누어서 각각 나뉜정사각형안에 다른숫자가 포함되는지 재귀함수로 구현하면 된다. 행과열을 나눌때 자꾸 실수해서 시간좀 잡아먹었다. 30분 걸렸다. 코드 check함수는 주어진 행과,열안에서 다른숫자가 있는지 확인하는 함수다.이 함수가 true면 이 재귀함수는 진행하지 않고, dict에서 숫자를 증가시켜준다. false면 주어진 행과열을 4분면으로 나.......

Naver Blog

탈출 - 백준 3055 - swift

https://www.acmicpc.net/problem/3055물이 차는것과 고슴도치가 이동하는 것을 동시에 고려해야한다. 문제를 대충 이해하면 queue에 고슴도치위치를 넣으면서 방문했는지, 안했는지 확인하며 굴에 도착하게하는 전형적인 bfs문제인 것 같다.하지만 이문제는 고슴도치가 움직일때마다 물도 같이 움직인다는 것을 고려해야한다. 하지만, 고슴도치의 위치는 1분마다 좌우위아래 4번의 기회가 있지만, 물은 1분마다 좌우위아래를 동시에 움직인다. 왜 고려해야하냐면, 주어진 시간은 1초이므로, 고슴도치의 위치마다 물을 옮기게하는건 반복되는게 너무많으므로 시간초과이다. 조금만 생각하면 이러한 변수는 쉽게 제어할 수 있다. queue에 고.......

Naver Blog

간단하게 UIEdgeInsets 알아보기

UIEdgeInsetsView와의 거리를 나타낸다. struct 타입으로써, 특정 직사각형(레이아웃)을 줄이거나 커지게 한다. 또는 간격이생기거나, 레이아웃을 넘거나한다. 주로 view의 프레임안에 특정 view의 레이아웃을 맞추도록 사용된다. 특정view의 레이아웃을 커지거나 줄어지게 한다. 양수값은 크기를 줄이게해주고, 또는 안쪽으로 간격이생기거나 음수값은 크기를 커지게 해준다. 또는 레이아웃을 넘거나한다. UIButton과 UIEdgeInsets 커스텀이든, 기본UIButton이든 content주변의 간격을 없애거나 추가할 수 있다.button의 title을 분리할 수 있고, - titleEdgeInsets button의 image를 분리할 수 있고, - imageEdgeInsets 둘 다.......

Naver Blog

두 번째 트리의 지름 - 백준 19581 - swift

https://www.acmicpc.net/problem/19581가장 긴 지름은 트리root에서 시작하는게 아니다. 트리root에서 시작하여 가장 끝에 있는 노드가 가장 긴 지름이 될 수도 있지만 다른 노드에서 시작하여 트리root을 거치고 끝에 있는 노드가 가장 긴 지름이 될 수 있다. 이 방법만 생각했다면, 나머지는 잘 풀린다. 가장 긴지름을 구하는 방법은 bfs를 두번돌린다.하나는, 아무 노드에서 시작하여 가장 긴 노드를 구하고, 두번째는, 해당 노드에서 시작하여 가장 긴노드가 가장 긴 지름이 된다.그다음 두번째 긴지름은 가장 긴 지름이 되는 두개의 노드 중 한개를 제외하여 위의 방법을 반복하면 두번째 긴지름이 된다. 두 개의 노드 중.......

Naver Blog

2 - 최신업데이트 Widget 만들기

https://developer.apple.com/documentation/widgetkit/keeping-a-widget-up-to-date내가 느낀 요약 앱에서 위젯 타임라인을 호출하도록 알릴 수 있다.시간같은경우는 동적으로 위젯뷰에서 설정할 수 있따. ( Text로 ) TimelineProvider가 조금 어렵넹…위젯에서 백그라운드 네트워크요청의 결과처리도 가능하다. 예측가능한 이벤트를 위한 타임라인 생성하기 이 주제가 되게 어려웠다. 자세히 알고 싶다면 직접 보시는 걸 추천한다.예측가능한 방법한에서 위젯을 업데이트 할 수 있다.TimelineProvider 안에서는 timeline entry를 배열로 가지고 있는 timeline에 정책을 정할 수 있다..atEnd.never.after() atEnd.......

Naver Blog

3 - 설정가능한 Widget 만들기

내가느낀점위젯이 사용자가 설정가능하게끔 만들기 위해서는 Sirikit intent Definition 을 생성해야한다. 사실 Widget 에 뜬금없이 Sirikit 이 나오는지 이해가 안갔는데, 이글을 보고나니 이해됐다. 마찬가지로 1 - Widget Extension 문서를 볼때는 Congfiurable 한 위젯을 만들려면 Sirikit을 만들라고 하라는 말이 무슨말인지 몰랐는데, 말그대로 Sirikit itent 가 필요했다. Sirikit intent Definition 은 정적인 데이터, 동적인 데이터가 있다. Custom Intent Definition 추가하기 File -> new File - Sirikit Intent Definition File 클릭하여 추가하라. 파일 확장자는 .intentdefinition 이된다. ( 이미 처음부터.......

Naver Blog

4 - iOS 14 Widget 요약

위젯킷을 5일동안 연습해보면서.. 예전에는 아주 기본적인 구현방법만 알고서 무작정 바로바로 개발했다면, 이번에는 개념을 이해하고, 어떤 것들을 사용할 수 있는지를 알기위해 공식문서부터 보고 연습하고 적용해봤다.당장에 무언가를 만들지 못한다는 답답함이 있지만, 이 방법이 훨씬 시간이 절약될 것이며, 더 얻어가는 게 많다라고 생각한다.전자는 무작정 하다가 안되면 왜안되는지 구글링하고, 근본적인 문제에 대한 접근없이 남에게 의지하며 개발하지만, 후자는 어느정도 해당 컨셉에 대해 이해해가며 어떻게 작동되는지를 이해하고, 하면서 개발하다보니 마주할 오류도 크게 줄어든다. 이번 위젯 문서들을 어려운 부분들을 빼.......

Naver Blog

좋은수열 - 백준 2661 - swift

https://www.acmicpc.net/problem/2661가장 작은값을 찾아라. 문제의 답이 좋은 수열중 가장 작은 값을 찾는것이고, 해결과정에서 가장 작은값이 핵심입니다.필요한 수는 1,2,3 3개뿐이고, 가장 작은 값부터 넣어보며 좋은수열인지 판단하면 됩니다. 좋은수열인지 판단하는 방법은, 손으로 몇개 작성해보면, 패턴이 있습니다.추가했을때, 길이가 4이면, 두 번 비교합니다.추가했을때, 길이가 5이면, 두 번 비교합니다.추가했을떄, 길이가 6이면, 세 번 비교합니다.추가했을때, 길이가 7이면, 세 번 비교합니다. 즉 길이가 1인경우를 제외하면, 길이를 2로나눈 값만큼 비교하면 됩니다.또 하나의 패턴은, [1,2,1,3] 이라면, 길이가 4이.......

Naver Blog

영어타자 속도 높이는 방법

해당글은 자랑하기 위함이 절대 아니며, 저처럼 느렸던분들도 연습을 통해서 충분히 올릴 수 있다는 것과 올리는 방법을 알려드리기 위함입니다.현재 영어타자 속도는 ? 한컴타자 - 짧은 글 연습 경우 오타없이 빠르면 500타 넘어갈때도 있고, 대부분 300~ 400 타 사이입니다. 불과 한달전에는 200타도 안됐는데 지금은 나름 수월하게 칩니다. 매일매일 30분-1시간씩 연습했습니다. 왜 영어타자를 높이고 싶었나요? 현재 개발자를 꿈구고 있고, 평소 공부하다보면 코드를 작성할 때 너무 오타도 심하고, 느렸습니다.그런 제 자신이 너무 답답해서 지금이라도 손가락위치를 바꿔보자! 생각했습니다. 영어타자에서 글자판 위치를 기억.......

Naver Blog

GCD (Dispatch Centeral Dispatch )

우선 알아야할 내용 프로세스어플리케이션은 하나의 프로세스를 가진다.하나의 프로세스안에 여러개의 쓰레드가 있다.쓰레드프로세스의 경량화버전으로 한 어플리케이션 내에 여러 개의 코드를 실행하는것을 가능하게 해준다. 시스템은 이러한 스레드를 관리하며 가용한 코어에 스케쥴링한다. 쓰레드 의 장점반응성을 향상. 하나의 쓰레드는 하나의 작업만 할 수 있기 때문에, 여러개의 쓰레드를 통해 여러작업을 할 수 있다.실제성능향상 쓰레드의 단점잘못된설계로 인해 동작 시간의 대부분이 대기시간으로 되어버릴 수 있다. 쓰레드에 맞춰 프로그램을 설계해야하며, 이 과정에서 코드가 복잡해질 가능성이 있다.쓰레드들은 하나의.......

Naver Blog

간단하게 CALayer 알아보자

참고 https://www.raywenderlich.com/10317653-calayer-tutorial-for-ios-getting-started해당글의 내용 CALayer가 무엇이고, 어떠한 유용한 subclass들이 있는지 간략하게 알아본다. 핵심은 우리가 알고있는 UILabel, UIScrollView, UIImageView, ... 등을 사용하지 않고, 오로지 UIView와 CALayer을 통해서 해당기능등을 구현할 수 있다는 점이다. 우선 Core Animation CALayer을 다루기 전에, CALayer은 Core Amination 프레임워크 안에있는 클래스다. Core Animation 프레임워크로 , 앱을 느리게하지 않으면서 높은 프레임과 부드러운 에니메이션을 제공한다 . 대부분의 애니메이션들은 이미 제공되어지고, 파라미터값만 잘 조.......

Naver Blog

간단하게 UISearchController 알아보자

참고 https://www.raywenderlich.com/4363809-uisearchcontroller-tutorial-getting-started요약NavigationController를 통해 검색결과를 TableView에 나타나도록 손쉽게 검색창을 구현할 수 있다. UISearchController UISearhController는 UINavigationItem과 통합된 UISearchBar를 사용하여 검색결과들을 보여주는 작업을 다룬다. UISearchController는 그 자체만으로 찾는기능을 하지 않는다. 단지 iOS엡에서 기대되는 기본적인 인터페이스만을 제공할 뿐이다. UISearchController안에 있는 UISearchBar를 사용해야한다. UISearchController는 delegate protocol 을통해 사용자들이 어떤 입력을 하는지 앱에게 알수 있도록.......

Naver Blog

욕심쟁이판다 - 백준 1937 - swift

https://www.acmicpc.net/problem/1937중복되는게 보이는 것 같은데..? 처음에는 bfs로 각 칸마다 자신보다 큰 숫자로 돌아다니게 작성했다. 하지만 시간초과.예제를 계속 보면서 뭔가 중복된다는 느낌이 강하게 들었고, 머릿속으론는 DP로 구현되겠다라고 생각이 들었다.아이디어는 DP를 2차원배열로 만들고, 각칸마다 값은 최장길이를 저장한다.처음시작하는 칸에서 4방향으로 이동했을때, DP배열에 값이 있다면 그 값을 더해준다. 코드 두 달전에 풀었을 때는 못풀었지만 이제는 풀었다는 것에 의의를 두고 싶다. 두 달전에는 DP를 생각못했다.

Naver Blog

연속합 - 백준 (1912) - swift

https://www.acmicpc.net/problem/1912어렵다! left,right으로 구성된 쿼리식 구간합 문제와 투포인터만 풀다보니 DP가 전혀 생각안났다.다른분의 코드를 참고하여 배웠다. 난이도는 실버2 임에도 불구하구 DP가 부족한 나에겐 어려웠다. DP는 점화식을 떠올리는게 어렵다. 우선 이해를 해야 점화식을 떠올리니까.. 연속된 수열중 가장큰합을 고르는 문제다. DP[i] = i번째까지의 수열중 가장 큰 합. 당연히, DP[i-1]의 값 + 현재값을 더했을때 커야 계속 증가한다. DP[i-1] 값 + 현재값이 현재값보다 작을경우에는 더 이상 연속된수열이 아니며, 필요없다.

Naver Blog

네이버 신입 코딩테스트 후기

이번 신입 공채 코딩테스트는 토요일,일요일 선택해서 시험을 볼 수 있었습니다.저는 토요일로 택해서 swift로 풀었습니다.외부 idle 프로그램에서 작성한 코드를 붙여넣기가 불가능한점과 카카오처럼 테스트케이스를 많이 지원하지 않는다는점에서 좀 힘들었습니다. 결과적으로는 기본테스트케이스만 푼 조건하에 1,3번 문제만 풀고 2번문제는 못풀었습니다. 네이버 코딩테스트는 문제유출에 엄격하므로 문제의 자세한 내용은 언급하지 않겠습니다.1번은 지문그대로 구현을 하면 되는 문제였던 것 같습니다. + 소수점도 다루었어야 해서 시간을 좀 잡아먹었네요. 30분 2번은 ... 도저히모르겠습니다. ㅎㅎ트리 관련문제인 것 같은데, .......

Naver Blog

도시분할계획 - 백준 1647 - swift

https://www.acmicpc.net/problem/1647최소신장트리!모든마을을 연결하면서, 최소비용을 유지하면서, 두개의 그룹으로 나누고 싶다.다시말해 최소신장트리인데, 두 그룹으로 나누고 싶다로 될 수 있다.최소신장트리를 구하여, 가장 비용이 큰 간선을 제외하게 되면 최소신장트리가 2개가 된다. 코드 크루스칼 알고리즘으로 최소신장트리를 구하면서 가장 큰 비용을 저장한다. 크루스칼은 쉽게 구현할 수 있지만, 여기서 문제는 swift의 경우 해당문제에서는 시간초과가난다. Foundation 에서 제공하는 readLine() 은 경험상 대략 30만,50만? 이상이면 많이 느려진다. 그러므로 라이노님이 만들어주신 빠른 readLine으로 M이 100만되는 인.......

Naver Blog

싸이버개강총회 - 백준 19583 - swift

https://www.acmicpc.net/problem/19583최신트렌드를 반영한 재밌는 문제! 나름 카카오 유형과 비슷한 문제였다라고 생각한다. 아직 코딩테스트의 경험이 부족한 사람들에게는 좋은 문제인 것 같다. 카카오 문제를 풀다보면은 문자열을 시간으로 변환하는 문제가 종종 있는데, 그런걸 대비할 수 있는 문제라고 생각한다. 난이도는 쉬운편으로 크게 어렵지 않다.00:00<= 시간 <= S 채팅을 남긴 유저한에서 E<= 시간 <= Q 에 포함되는 유저를 카운팅시키면 된다. 그럼 이런 문제는 어디서 발견하셨나요?! 여기 오픈채팅방에서 주마다 방장님들이 선별해서 문제를 3개씩 출제합니다! 여기오시면 좋은문.......

Naver Blog

0 - Apple 위젯 인터페이스 가이드라인

해당 정보를 지금 작성하는건 늦은감이 있지만, 저에게도 도움되고, 누군가에게 도움이 되기를 바라면서 작성하겠습니다. https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/widgets/Human Interface Guidelines - 위젯에서 보고 작성된 글입니다. 다소 부족한 영어실력이기에, 그렇게 길지 않으니 다들 한번씩 보고 제대로 확인하시면 좋겠습니다. iOS14 중에서 가장 중요한 부분중의 하나가 위젯이 아닐까 싶습니다. 요약하자면, 디자이너와 개발자 둘다 알아야하는 점작은,중간,큰 사이즈가 있다. 위젯갤러리에서 정보를 나타내는 문구를 작성할 수 있다. 다크모드를 지원하라. 위젯의 정.......

Naver Blog

1 - 간단하게 Widget 알아보기

https://developer.apple.com/documentation/widgetkit/https://developer.apple.com/documentation/widgetkit/creating-a-widget-extension위에 정보들을 바탕으로 정리해보았습니다. 요약하자면, 저의 얕은 지식으로는 Apple 에서 제공한 Widget 만들기는 MVVC패턴을 따른 것 같다. ( 아니면 댓글에 남겨주세요ㅠㅠ) 일단 큰 핵심은 timeline entry, timeline provider , view , widget 4개인것같다.여기서 왜 MVVC패턴이라고 느꼈나면, 데이터정보들은 timeline entry, 이 entry를 관리하는것이 timeline provider .Widget 이 provider를 가지고 있고, 시각적으로 보여질 View에 데이터를 전달한다. 처음에는 약간 어려웠지만, 가이드.......

Naver Blog

난개발 - 백준 19584 - swift

https://www.acmicpc.net/problem/19584어렵다! solved에서는 난이도를 골드3 으로 되어있는데, 체감상 플래티넘은 되는 것 같았다. 이런 유형의 부분합은 처음이여서 그런가 많이 어려웠다.자료를 압축 & 범위로 값이 주어졌을때 부분합을 구할 수 있는가? 우선 문제의 답은 통행량의 합이 가장큰 곳이다. 문제의 답을 구하기 이전에, 2가지를 풀어야한다.우선 서울의 장소들의 좌표가 x,y 로 주어지는데, 사실 x는 필요가 없다. 문제에서 철길을 놓는 방법이 x축에 평행하도록 놓으라고 했기 때문이다. x는 필요없다라는 생각은 쉽게 떠올릴 수 있다.그러면 문제는 y위치의 구간안에서의 부분합이 최대치를 구하는 것으로 바.......

Naver Blog

신입사원 - 백준 1946 - swift

https://www.acmicpc.net/problem/1946N² 안됩니다! 간단하게 생각하면, 서류순, 면접순 둘 중 하나를 sort시켜서, 가장 1등인사람을 제외하고, 2등부터 순차적으로 다른 점수를 비교해가면 되겠다 라는 생각이 들지만, N 이 최대 10만개이므로, 시간초과가 난다. O(N)으로 비교가 가능한데, 예를들어, 서류순으로 sort시켰다면, 1등은 무조건 합격이고, 2등은 면접에서 1등보다 순위가 낮아야(좋아야)한다. 3등은 마찬가지로 2등,또는 1등보다 면접에서 순위가 낮아야한다. 반대로 면접보다 순위가 높다면(안좋다면) 합격할 수 없다.이 생각을 바탕으로, 현재 검사해야할 대상과, 검사해야할 대상과의 비교대상을 정하여 N을 한번.......

Naver Blog

독특한 계산기 - 백준 19591 - swift

https://www.acmicpc.net/problem/19591열심히 주어진대로 구현합시다. 지문 그대로 구현하면 된다. 그말은 꼼꼼히 잘 살펴보고 여러 상황들을 생각해서 풀면된다.주어지는 문자열의 길이가 최대 100만개이므로, left, right 포인터를 사용하여 while 문돌렸다. left는 0 부터시작하고, right는 끝에서부터 시작한다.left는 +1 증가시키고, right는 -1 시키면서 left가 right보다 커지면 종료한다. 코드

Naver Blog

이진트리 - 순회방법 - swift

이 글의 핵심은? 3가지의 순회방법 구현의 동작원리를 재귀함수를 통해 이해하기 위함입니다.그러므로 자세한 트리의 구현방법은 없습니다. 이진트리전에 우선 트리란? 트리 자료구조는 계층적 자료구조를 나타내기 위함입니다.작업속도가 빨라 탐색형 자료구조로도 유용하게 사용됩니다.노드(node)와 간선(edge)로 표현됩니다. 계층적으로써 각 노드 간에는 상/하위 관계가 있습니다. 트리를 표현할때 가지치기로 나타냄으로써 나무와 닮았다고 해서 트리라고 부릅니다. 트리는 최상단에 하나의 유일한 노드가 있는데, 이를 트리의 뿌리, 트리의 root라고 부릅니다. 이진트리란?이진으로써 각 노드는 최대 2개의 자식노드를 가지고 있는.......

Naver Blog

길 찾기 게임 - 카카오 2019 BLIND - swift

https://programmers.co.kr/learn/courses/30/lessons/42892이 문제.. 무슨 말이죠? 이진트리, 이진검색트리는 몰랐을 때, 이 문제를 처음접했을 때는 무슨소린지 도통 모르겠더라.특히 전위 순회, 후위 순회 이런 생소한 단어를 보자마자 울렁증이 왔었지만, 그래도 지문이라도 이해해보고자 패턴이 있나 계속 고민했다. 이래가지고는 절대 못푼다. 나 역시 고민만 하다가 이런문제는 어떻게풀어! 하고 포기했다.뭐야 , 어려운 친구가 아니였네? 그러고 이진트리,이진탐색트리를 살짝 공부하고, 보았더니, 왠걸? 너무 쉬운 문제였다. 이렇게 쉬운문제가 프로그래머스 3단계라니? 하면서 채점을 했는데 통과됐다. 이로써 문제를 무작정 풀리.......

Naver Blog

가장 긴 팰린드롬 - 프로그래머스 - swift

https://programmers.co.kr/learn/courses/30/lessons/12904문제는 제대로 이해했습니까? 아니요. 분명 저와 같은 사람이 있을겁니다.저는 문제를 문자를 뒤집어서 공통된 문자열이 있는가로 판단했다. 그러니까, 뒤집지 않은 문자열과 뒤집은문자열중에 공통된 문자열이 있는경우를 판단했다.이렇게 접근해서 풀었더니 테스트케이스 3, 19 번만 계속틀리더라.내 알고리즘은 문제가 없어보였기 때문에 내가 문제를 잘 못 이해하고 있는 건가 싶었다.다시 제대로 읽어보니 해당문자열을 뒤집은 위치가 같아야 한다는 문제였다. 그니까, [ a, b , c, d ] 가 있다면, a는 뒤집은 d의 위치의 문자와 같아야한다는 의미다.b는 뒤집은 c의 위.......

1 2