UIKit
뷰 계층 순회
루트 뷰에서 시작해 특정 조건(예: tag == 99 또는 특정 타입)을 만족하는 뷰를 찾는 함수를 어떻게 작성하겠습니까?
func findView(in root: UIView, where predicate: (UIView) -> Bool) -> UIView?면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
루트 뷰에서 시작해 특정 조건(예: tag == 99 또는 특정 타입)을 만족하는 뷰를 찾는 함수를 어떻게 작성하겠습니까?
func findView(in root: UIView, where predicate: (UIView) -> Bool) -> UIView?뷰 계층은 트리이므로 subviews를 큐에 담아 순회하며 predicate를 검사하면 루트에 가까운 뷰를 먼저 찾는다. removeFirst 대신 head 인덱스로 큐를 소비해 O(n)을 유지한다.
CS 기초·알고리즘주관식심화
원본 뷰 계층의 특정 UIView 인스턴스가 주어지고, 같은 구조로 복제된 뷰 계층이 있습니다. 복제본에서 대응되는 뷰를 찾는 함수를 어떻게 설계하겠습니까?
#view-hierarchy #bfs #dfs
UIKit주관식심화
여러 개의 UIView가 주어졌을 때 이들의 가장 가까운 공통 superview를 반환하는 함수를 어떻게 설계하겠습니까?
#view-hierarchy #coding
CS 기초·알고리즘주관식심화
이미지 마스크가 N×M 격자로 주어지고 1은 전경, 0은 배경입니다. 상하좌우로 이어진 1 덩어리(연결 영역)마다 크기를 구해 배열로 돌려주는 함수를 작성한다면…
#bfs #dfs
UIKit주관식기초
두 UIView가 주어졌을 때 가장 가까운 공통 부모 뷰를 찾는 함수를 작성합니다. 한쪽 뷰의 superview 체인은 어떤 자료구조에 담아 두겠습니까?
#view-hierarchy