전체 카테고리 223

[Swift] AVAudioRecord, AVAudioPlayer, AVAudioEngine을 사용한 음성파일 재생, 녹음, 효과음 주기

음성을 다루는 프로젝트를 개발하기 앞서서 관련된 지식들을 공부해보려고 기본적인 음성재생, 음성녹음, 음성효과를 줄 수 있는 기능을 구현해봤어요 엄청 많은 클래스들이 있더라구요 하지만 하나를 알면 다른것들은 대충 어디에쓰일지 감이 와요 ㅎㅎ 이 게시글에서 다룰 타입은 import AVFoundation 을 꼭 해주시구요! AVAudioRecord AVAudioPlayer AVAudioSession AVAudioEngine AVAudioPlayerNode AVAudioFile AVAudioPCMBuffer AVAudioUnitTimePitch AVAudioUnitDistortion AVAudioUnitReverb 엄청많죠? ㅎ... 저도 하면서 엄청 헷갈렷어요.. 음성을 듣기위해서는 샘플음성파일을 직접가져와..

iyOmSd/Title: Swift 2021.02.19

[Swift] CountDown Animation Label 구현

카운트효과를 줄 수 있는 라벨을 만들어 보고싶었어요 그래서 어떻게 줄수 있는지 찾아봤고 아래와같은 2가지로 구현할 수 있을 것 같아요 CATransition An object that provides an animated transition between a layer's states. 레이어의 상태가 변경되면 애니메이션을 제공해주는 역할이죠 CAAnimation을 상속받고 있구요 이름만 봐도 전환효과를 나타내는 녀석같죠? 간단하게 구현하려고 라벨을 생성해주고 버튼을 생성해주고 버튼이 눌리면 아래와같은 효과를 주도록 설정했어요 func makeCATransitionLabel(_ label: UILabel) { let transition = CATransition() transition.duration =..

iyOmSd/Title: Swift 2021.02.11

[Swift Algorithm] 12914 멀리 뛰기 (프로그래머스)

programmers.co.kr/learn/courses/30/lessons/12914 코딩테스트 연습 - 멀리 뛰기 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2 programmers.co.kr 풀이방법 1칸 까지가는경우 2칸 까지가는경우 3칸 까지가는경우를 그리다보면 중복되는 곳을 지나는 것을 느낄수 있을거에요 도형이 주어지고 해당 도형을 채워라 하는 문제와 같은느낌이 났어요 점화식? 을 세워서 풀수 있는 문제죠 n = n-1 + n-2 같은 공식으로요 ㅎㅎ 3칸일때 1칸까지 가는것에 + 2 2칸까지가는 것에..

[Swift Algorithm] 60062 외벽 점검 (2020 카카오 블라인드)

programmers.co.kr/learn/courses/30/lessons/60062 코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 스카피는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하는 programmers.co.kr 풀이방법 너무너무너무너무...너무 어려웠던 문제였어요... 하다가 포기할뻔햇어요 ㅠㅠ 머리로는 알겠는데 코드로 구현이안되는... 뇌가하얘져서 바보가된기분이엿어요 (사실바보일수도잇지만..) 반시계와 시계방향으로 생각하는 그런 방법이잇는데 원이기때문에 같은 방법이라고 생각할 수 있기때문에 고려안해도 상관없어요 우선 모든 경우를 탐색해야해요 문제의 예시를보면 취약지점이 [1, 5, ..

[SwiftUI] Published, ObservableObject

SwiftUI를 공부하다보면 @Published 라는 키워드를 보게될거에요 이와 같이 언급되는게 ObservableObject죠 ObservableObject는 필수구현을 필요로 하지않는 프로토콜이에요 Combine에 속한 기능이구요 클래스에서만 사용가능하고 ObservableObject를 준수한 클래스는 objectWillChange라는 프로퍼티를 사용할 수 있어요(ObservableObjectPublisher타입) objectWillChange.send()를 이용하기위함이죠 이 send()함수는 변경된 사항이 있다고 알려주는 거에요 Combine?!!? RxSwift같이 쓰는거잖아요..!! 어렵잖아요..! 라고 생각할수 잇지만 스유를 공부하다보면 자연스레 접할수있어요 ㅎㅎ Combine도 따로 공부하..

[Swift Algorithm] 12904 가장 긴 팰린드롬 (프로그래머스)

programmers.co.kr/learn/courses/30/lessons/12904 코딩테스트 연습 - 가장 긴 팰린드롬 앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다. 문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요. 예를들 programmers.co.kr 풀이방법 문제를 보고 떠오른 해결방법은 abcba가 있다면 abcba -> a / cba abcba -> ba / ba abcba -> cba / a 이런 식으로 인덱스를 옮겨가며 좌우를 비교하려는 생각을 했어요 좌우 문자가 같으면 현재 길이를 +2를 해주는 식으로 늘려갔어요 이런식으로 하는게 틀린건 아닌가봐요 정석은 뭔지..

[Swift Algorithm] 72411 메뉴 리뉴얼 (2021 카카오 블라인드)

programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 풀이방법 A~Z의 메뉴중 인기가 많은 조합을 골라내는 문제에요 누군가는 ABC를 시킨다면 A, AB, AC, BC, ABC 라는 조합이 가능할거고 누군가는 AC를 시키면 A, AC라는 조합이 가능하겟네요 이때 AB == BA이기 때문에 (라면과 밥, 밥과 라면은 같은 조합이죠) 한번만 체크하기위해서 문자열을 정렬해주고 모든 조합을 검사하면 A: 2 AB: 1 AC: 2 BC: ..

[Swift Algorithm] 49191 순위 프로그래머스

programmers.co.kr/learn/courses/30/lessons/49191 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr 어떻게 구현해야할까 감이안오는 문제였어요.. 처음에는 자신의 순위를 확실히하려면 n-1개의 정보가 필요함 을 이용해서 풀어보려고했어요 Set을 이용해서 이긴사람과 진사람을 체크한후 i를 이긴 사람은 i가 이긴사람을 다이김 i한테 진 사람은 i가 진사람한테 다짐 위의 로직을 적용해봤지만 일부 케이스만 통과하고 생각해보니 이긴사람, 진사람이 갱신되면 다시 업데이트 되야하는 그 과정이 누락된것같더라구요 이 논리로 푸려고했지만 계속실패해서 다른 방법을 찾아봤고 이방법이 정석인것 같았어요 플..

[Swift] Google AdMob 커스텀 광고달기

진행중인 프로젝트에서 유지비를 충당하고자 광고를 달아 봤는데요 나중에 앱에다가 광고를 달고 많은 수익을 내서 먹고살았으면 좋겠어요 ㅎㅎ 우선 구글 AdMob을 사용해서 광고를 달았는데요 지원하는 광고형식에는 여러가지가 있어요 밑에 다는 배너 전체화면으로 보이는 전면 보상형같이 몇초기다리는 그런 광고 아니면 제맘대로 커스텀 디자인해서 보여줄 수 있는 네이티브 광고 앱의 컨텐츠와 자연스러움을 위해서는 네이티브 광고가 좋죠 이렇게말이죠.. ㅎㅎ 네이티브 광고를 구현하는 것을 해볼 거예요 문서에도 잘 설명되어있지만..! 우선 먼저 iOS14+ 에서는 트레킹에 관한정책이 변경되어서 명시를 해줘야해요 권한을 요청하는 코드를 통해서 if #available(iOS 14, *) { ATTrackingManager.re..

iyOmSd/Title: Swift 2021.01.13

[Swift Algorithm] 프로그래머스 43238 입국심사

programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr 문제만 봐도 1,000,000,000... 10억이죠? O(n)을 사용해도 버거운 속도일거 같네요 시간복잡도를 줄이는 쪽으로 접근해야할텐데 문제만보고 접근방법이 떠오르지않았는데 이문제의 카테고리가 이분탐색 이에요 ㅎㅎ 그래서 어떻게 이진탐색을 이용할까... 생각했지만 어렵더라구요 너무오래생각하게되면 풀이를 보고 배우는게 더좋다고했어요... ㅠㅠ 분을 기준으로 몇명을 검사할 수 ..