코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 아니 풀긴 했는데 ㅋ 다른 사람 풀이 분석 해야 할듯? 2시간 정도 걸림 소요 시간 약 2시간 해결 과정 begin = "hit" "hit" -> "hot" -> "dot" ... 문제에 있는대로 그대로 따라갔다. 일단, 가장 짧은 변환 과정을 찾아야 하는데 모든 과정 중에서 가장 짧은 과정을 찾아야 했다. 그래서 무조건 다 탐색해두고, 그 중에 개수가 가장 작은 것을 찾아야 겠구나. (전체 구조 확인) 2번째 예시로 ..
코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 헐 ㅋ 풀었다. 이렇게 한 걸음씩 ㄱㄱ 소요 시간 13:42 - 14:13 (총 31분) 해결 과정 우선, DFS/BFS 문제라는 것을 알고 있는 상태였다. 문제 자체가 그래프로 주어졌는데, 연결이 끊어진 상태가 몇 개인지를 찾는 문제였다. 우선 연결되어 있는 것을 먼저 다 돌면, 이걸 1개로 처리하고 아직 돌지 않은 것들 중 또 다시 연결되어 있는 것을 다 도는 형태로 가야했다. -> DFS를 여러 번 돌리자. 코드는 DFS 코드 형식을 참고하며 이 문제..
UITabBarController 다음으로 사용했던 뷰컨트롤러는 UINavigationViewController 이를 정리하려다가 이를 포괄하는 개념인 '화면 전환'에 대해 먼저 알아보는 것이 좋겠다 싶다. 화면 전환에 대해 정리해보자. present, pushViewController 이 메소드들의 차이점을 알고 있니? 그 때 그 때 마구잡이(?)로 가져다 썼던 메소드들도 정리 ㄱㄱ 앱은 보통 한 화면으로만 구성되지 않는다. 화면을 어떻게 나눌 것인지, 나눈 화면 간의 연결은 어떻게 할 것인지 등을 생각해봐야 한다. 여기서 '화면 전환' 이라는 개념이 나오는데, 이 화면전환은 1) 소스 코드 2) Storyboard 두 군데에서 구현할 수 있다. 전환 방식은 크게 4가지로 나눌 수 있다. 1) 하나의 ..
코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr [12월 20일] 2시간 가량 생각했는데, 잘못된 풀이 방법을 계속 고수하고 있었다. 다른 사람들의 풀이를 살펴봤다. 제대로 본 건 아니고, 아 이런 개념으로 풀 수 있구나. 오늘은 여기서 끝. [12월 21일] 새로운 마음으로 다시 풀었다. DFS, BFS 개념 다시 돌아보고 코드 다시 보면서 stack, queue 관점으로 다시 생각해봤다. 1시간이 채 안돼서 풀었다. 어쨌든 모든 것을 다 탐색해야 하니까..
iOS 프로젝트를 진행하면서 정말 수도 없이 봤던 Extension. 처음 사용해본 건 ViewController에 UITableViewDelegate, UITableViewDataSource 프로토콜을 채택할 수 있도록 확장하기 위해서였다. 이 외에도 기본 Type들에 원래 있는 기능은 아니지만, 자주 사용되는 기능들을 모아놓기 위해 사용하기도 했었다. UIView에 그림자를 설정할 수 있도록 하는 메소드를 만들어 두었던 것이 대표적인 예시다. Extension Extensions add new functionality to an existing class, structure, enumeration, or protocol type. This includes the ability to extend typ..