본문 바로가기
반응형

전체 글282

[iOS] 화면 방향에 따라 다른 오토레이아웃 적용하기 아래 사진처럼 기기 방향이 세로일 때와 가로일 때의 레이아웃을 다르게 잡고 싶었다. 전에 적용했던 constraint들을 해제하고 새로운 constraint를 먹이면 되는데, 코드를 깔끔하게 처리할 수 있는 방법을 발견해서 정리해보고자 한다. (이어질 내용은 아래 포스팅 내용을 참고한 것임!) Orientation Responsive UI in iOS Have you ever encountered a situation where the landscape UI does not quite match the portrait UI — meaning the constraints that were used… medium.com 먼저 기기 회전이 이루어지면, ViewController의 viewWillTransiti.. 2022. 3. 11.
[iOS] 오토레이아웃 1/N 지점에 위치시키기 아래 사진처럼 노란색 뷰가 하위 뷰로 파란 버튼을 가지고 있을 때, 파란 버튼을 항상 노란 뷰의 1/3 지점에 오도록 하고 싶은 상황이다. top을 constant로 줘버리게 되면 화면 크기가 달라졌을 때 비율이 유지되지 않는다. multiplier를 사용하면 될 것 같은데, width, height anchor가 아닌 top anchor와 같은 것들에도 multiplier를 사용할 수 있을까? 사용할 수 있다면 무엇을 기준으로 적용해야 할까? 어떤 뷰 내에서 top과 bottom anchor는 아래와 같이 표현할 수 있다고 한다. top = 0*bottom이고, bottom = 1*bottom이므로, top과 bottom 사이의 값은 (0~1 사이 값)*bottom으로 표현할 수 있다. 따라서 세로 방.. 2022. 3. 10.
백준 11277번 2-SAT - 1 - 스위프트(Swift) 풀이 1. 변수가 최대 20개이므로, 각 변수의 값을 정하는 모든 경우의 수는 2^20이다. 2. 비트마스킹을 사용하여 모든 경우를 계산해 결과가 true가 되는 경우가 존재하는지 확인한다. 1. 변수가 최대 20개이므로, 각 변수의 값을 정하는 모든 경우의 수는 2^20이다. 변수의 개수가 20개로 매우 작기 때문에 모든 경우를 고려해볼 수 있다. 각 변수마다 true/false 값 중 하나를 가지므로 모든 경우의 수는 2^20이다. 또한 각 경우의 결과값을 계산하는데 O(M)의 시간복잡도가 든다. 따라서 총 시간복잡도는 O(2^N*M). 2. 비트마스킹을 사용하여 모든 경우를 계산해 결과가 true가 되는 경우가 존재하는지 확인한다. Xi를 i번째 비트로 표현한다고 하면, 모든 변수가 false인 경우는 .. 2022. 3. 10.
백준 11378번 열혈강호 4 - C++(cpp) 풀이 1. 각 직원은 한 개의 일만 할 수 있으므로 각 간선의 용량이 1인 네트워크 플로우 문제로 생각할 수 있다. 2. 벌점을 받으면 추가로 일을 할 수 있고, 벌점의 합이 K이므로 source에서 시작해 K만큼의 용량을 각 직원에게 분산하는 정점과 간선을 추가한다. 3. 포드 풀커슨 알고리즘을 사용하여 최대 유량을 구한다. 1. 각 직원은 한 개의 일만 할 수 있으므로 각 간선의 용량이 1인 네트워크 플로우 문제로 생각할 수 있다. 2. 벌점을 받으면 추가로 일을 할 수 있고, 벌점의 합이 K이므로 source에서 시작해 K만큼의 용량을 각 직원에게 분산하는 정점과 간선을 추가한다. 3. 포드 풀커슨 알고리즘을 사용하여 최대 유량을 구한다. 포드 풀커슨 알고리즘의 시간 복잡도는 O((V + E) * F)... 2022. 3. 9.
백준 18138번 리유나는 세일러복을 좋아해 - 스위프트(Swift) 풀이 1. 세일러복을 만들 수 있는 모든 (티셔츠, 카라) 쌍에 대해 간선으로 연결한다. 2. 티셔츠와 카라를 이분 매칭 한다. 1. 세일러복을 만들 수 있는 모든 (티셔츠, 카라) 쌍에 대해 간선으로 연결한다. 티셔츠 집단과 카라 집단을 최대로 매칭 시켜야 하는 이분 매칭 문제이다. 먼저 각 티셔츠와 카라들을 그래프의 정점이라고 생각한 뒤, 세일러복을 만들 수 있는 모든 (티셔츠, 카라) 쌍을 간선으로 연결해 그래프를 만들어준다. 2. 티셔츠와 카라를 이분 매칭 한다. 이제 완성된 그래프에 대해 이분 매칭을 진행하면 된다. DFS를 사용하여 구현하였다. import Foundation var N = 0, M = 0 var Tshirts = Array(repeating: 0, count: 201) var co.. 2022. 3. 8.
반응형