-
iOS
iOS 앱에서 AdMob 광고 띄우다가 발견한 화면 방향 문제
iOS AdMob 광고와 화면 방향 제어 시 발생하는 문제와 해결책안녕하세요! 오늘은 iOS 앱 개발 중 AdMob 전면 광고(Interstitial Ad)와 화면 방향 제어를 함께 사용할 때 발생하는 흥미로운 문제를 발견해서 공유하려고 합니다.🔍 문제 발견최근 화면 방향을 동적으로 제어하는 기능과 AdMob 광고를 함께 구현하던 중, 예상치 못한 문제를 발견했습니다.문제 상황:가로 방향 고정 상태에서 광고를 로드세로 방향 고정 상태로 변경 후 광고 표시 시도결과: 광고 표시 실패! 😱그 반대 상황도 마찬가지였습니다.🧪 테스트 환경 구성문제를 정확히 파악하기 위해 테스트용 플레이그라운드 앱을 만들어봤습니다.주요 기능세로/가로/전체 방향 동적 전환AdMob 전면 광고 로드/표시Toast 메시지로 상태..
-
백준
[BOJ] 백준 5525 IOIOI (Swift)
문제https://www.acmicpc.net/problem/5525풀이문자열 S에서 다음 조건을 만족하는 패턴 Pn이 몇 번 등장하는지 찾는 문제입니다.Pn의 정의:P1: IOIP2: IOIOIP3: IOIOIOI…즉, I로 시작해서 OI가 N번 반복되는 패턴예를 들어, N = 2, S = IOIOIOI 라면 P2 패턴이 2번 등장할 수 있습니다 (겹쳐도 인정).풀이 과정패턴은 항상 "IOI" 형태를 기본 단위로 삼기 때문에, 문자열을 3글자씩 묶어가며 "IOI"를 계속 찾습니다."IOI"가 연속될 경우 → count += 1연속된 IOI가 N개가 되면 Pn 패턴 하나 완성 → result += 1겹치는 패턴을 위해 count -= 1 처리소스코드후기문자열 문제였는데, M이 최대 100만이므로, O(M..
-
백준
[BOJ] 백준 30804 과일 탕후루 (Swift)
문제https://www.acmicpc.net/problem/30804풀이이 문제를 처음 봤을 때, 앞 뒤로 뺀다는 점에서 Deque 자료구조를 떠올렸다.하지만 Deque으로 어떻게 풀어야할 지 도저히 감이 안잡혔다.그러던 도중 투포인터를 떠올리다가 슬라이딩 윈도우 기법이 생각나서 해당 방법으로 접근했다.과일의 갯수가 2개라는 점에서 Set 자료구조를 생각했는데,Set은 종류의 개수는 세지만 각 종류의 개수는 알 수 없다는 한계가 있어결국 Dictionary를 사용해 구현하였다.Dictionary를 통해 현재 슬라이딩 윈도우 내 과일의 종류별 개수를 관리하면서,윈도우 내 과일 종류가 3개 이상이 되는 순간,start 포인터를 오른쪽으로 이동시켜 과일을 하나씩 제거했다.이때 해당 과일의 개수가 0이 되면 ..
-
백준
[BOJ] 백준 21736 헌내기는 친구가 필요해 (Swift)
문제https://www.acmicpc.net/problem/21736풀이전형적인 그래프 문제이다.BFS, DFS로 풀 수 있는 문제문제 그대로 X 인 곳은 이동 불가능하고, DFS나 BFS로 탐색을 진행하면 쉽게 풀 수 있는 문제이다.소스코드후기그래프 탐색에 대한 이해가 있다면 쉽게 풀 수 있는 문제
-
백준
[BOJ] 백준 18111 마인크래프트 (Swift)
문제https://www.acmicpc.net/problem/18111풀이이 문제를 처음 봤을 때, 어떻게 풀어야 할 지 생각을 좀 해봤다.결론으로는 가능한 높이를 모두 만들어보고, 최소한의 수를 구하는 방법을 택해야겠다고 생각했다.원래 이런 문제들을 풀 때, 사람이라면 어떻게 계산할 까 생각을 해봤는데..뭐 전부 1이고 하나만 0이면 그냥 한 개 가방에 있는거 꺼내면 되겠다 이런 생각이 들었었다.그런데 제각각 다른 수일 때, 인간이 이걸 어떻게 계산할까 생각을 해보다가모든 경우의 수를 확인해봐야겠다고 생각이 들었다.이 문제에서는 최소 0에서 255까지의 높이까지 쌓을 수 있다고 했으므로, 모두 균일하게 해당 높이를 맞춰보는 식으로 구하고자 했다.n,m이 500이고 높이가 255이므로 255 * 500 ..
-
백준
[BOJ] 백준 17626 Four Squares (Swift)
문제https://www.acmicpc.net/problem/17626 풀이DP로 풀이할 수 있는 문제$f(1) = 1^2$ 이고, $f(2) = 1^2 + 1^2$로 나타낼 수 있다.최대 갯수는 $f(n) = f(n - 1) + 1$으로 볼 수 있다.$f(4) = 2^2$ 같은 경우에는 $2^2$를 어떻게 도출할 수 있을지 생각해보자.이렇게 생각해보면 되지 않을까?4는 $2^2$ 이므로, $f(4) = f(4 - 2^2) + 1$n이 어떤 수의 제곱보다 크거나 같다면 n에서 해당수를 뺀 값에서 +1만큼 경우의 수를 더해주어 n을 만들 수 있다.$f(n) = min(f(n-1)+1, f(n-i*i)+1$소스코드후기기본적인 DP 문제
-
백준
[BOJ] 백준 11727 2xn 타일링 2 (Swift)
문제https://www.acmicpc.net/problem/11727풀이dp로 풀 수 있는 문제2x1 을 놓을 수 있는 경우의 수 = 12x2 을 놓을 수 있는 경우의 수 = 3 이지만, || 블럭을 제외하면 2개이다.2x3을 놓을 수 있는 경우의 수는 5이고, 직접 그려서 세보았다.이것을 어떻게 도출해 낼 수 있을지 한 번 생각해보자.2x1 까지 채워져 있는 경우, 해당 경우에서 '=' 블럭과, 2x2 블럭을 넣는 두가지 경우가 있다.2x2 까지 채워져 있는 경우에는 | 블럭밖에 놓을 수 없다.여기서 점화식을 도출 할 수 있다.$f(1) = 1, f(2) = 3$$f(n) = f(n-1) + 2*f(n-2)$소스코드후기기본적인 dp 문제였다.
-
백준
[BOJ] 백준 9375 패션왕 신해빈 (Swift)
문제https://www.acmicpc.net/problem/9375 풀이조합 문제이다.옷이 2벌 바지가 3벌 있다면, 옷과 바지를 조합해서 입는 경우의 수는 단순히 2 * 3 = 6으로 나타낼 수 있다.하지만 이 문제에서는 옷만 입거나 바지만 입는 경우도 가능하다.단, 모두 입지 않은 경우를 제외해야한다.따라서 옷이 2벌있다고해도 안입는 경우 까지 총 3벌이 있다고 가정할 수 있다.물론 바지도 마찬가지다.그러면, 3 * 4 = 12 로 나타낼 수 있다.하지만 모두 안입는 경우의 수는 1이다. 해당 경우의 수를 뺴주어야 한다.dictionary를 사용하여 종류를 구분하였고, value의 갯수를 세어 배열로 만들어주었다.해당 배열의 원소들에게 전부 +1을 해주고, 원소들끼리 곱한 후 마지막에 1을 빼주면 ..