분류 전체보기

    [알고리즘] 구간 합, 누적 합(Prefix Sum)

    [알고리즘] 구간 합, 누적 합(Prefix Sum)

    목차 누적 합이란? 언제 사용할까? 예시 및 코드 누적 합이란? 누적 합이란 수열 An에 대해서 각 인덱스까지의 구간의 합을 구하는 것을 누적 합이라고 합니다. 예를 들어 [1, 2, 3, 4, 5] 라는 배열이 있을 때, 각 구간까지의 합을 구하는 배열인 [ 1, 3, 6, 10, 15] 을 구한다고 가정해보면 아래와 같이 2가지로 구할 수 있습니다. [ 첫번째 방법 ] 1 1+2 1+2+3 1+2+3+4 1+2+3+4+5 매번 현재 인덱스까지의 값을 반복하며 더해주기 [ 두번째 방법 ] 1 1+2 3+3 6+4 10+5 이전 인덱스까지의 누적합에 현재 값을 더해주기 어떤게 더 효율적일까요? 배열의 갯수인 n을 늘려 [1, 2, ..., 99999, 10000]로 비교해보겠습니다. [ 첫번째 방법 ] ..

    XCode15+ Image Color Assets 관리 방법의 변화

    XCode15+ Image Color Assets 관리 방법의 변화

    목차Asset Catalogs 의 새로운 기능원리사용법사용 후 느낀 점 Asset Catalogs 의 새로운 기능XCode15 을 통해 에셋 카탈로그에 새로운 기능이 추가되었습니다.이제 다음처럼 카탈로그에 리소스를 추가하면 Color, Image를 해당 이름을 통해 상수로 불러올 수 있습니다.따라서 직접 Enum이나 Struct를 만들어 각 리소스들을 직접 상수화 시키는 번거로움이 줄었습니다.  원리에셋 카탈로그에 우리가 리소스를 추가하면 XCode에서 GeneratedAssetSymbols.swift 라는 파일을 생성하고각각 ImageResource, ColorResource라는 Struct 안에 전역 상수로 만들어 줍니다.  아래 이미지를 보면 ImageResource 를 통해 에셋 카탈로그에 있는 ..

    XCode Archive 시 has no member Error 발생

    XCode Archive 시 has no member Error 발생

    목차포스팅 동기Archive 시 Type '' has no member '' 문제 발생문제될만한 곳 확인하기문제 해결 포스팅 동기개인 앱을 만들다가 어느정도 완성되기도 했고, 햅틱 반응 테스트가 필요해 테스트 플라이트에 올려보기로 했다.그런데 시뮬레이터나 실기기 연결에선 잘되던 빌드가 아카이빙에서만 빌드 에러를 뱉는 문제가 발생했다.해당 문제를 정리하는 것부터 문제의 원인까지 차근차근 접근하다보면 해결되지 않을까 싶어 포스팅하게 되었다.  Archive 시 Type '' has no member '' 문제 발생 위 사진처럼 에러가 나는데, 실제 파인더 경로에 가보면 정상적으로 파일들이 있고 해당 코드부분을 눌러보면 에러메시지가 사라진다.(에러 메시지가 사라지는게 가장 의문..) 문제될만한 곳 확인하기가장..

    개인 프로젝트가 유기 당하는 이유와 해결 방법

    개인 프로젝트를 하다 보면 다른 일이 끼어들거나 단순히 귀찮아져서(이게 비중이 큼) 미루게 되더라. 며칠 뒤 정신차리고 다시 작업하려고 보면 ‘내가 어떤 작업을 하고 있었더라?’ 하고 ’개발 기억상실증‘에 빠지곤 한다. 그럼 술마시고 필름이 끊긴 다음 날 기억의 조각을 맞춰보듯 코드와 커밋 기록 등을 뒤적거리며 기억을 되찾곤 한다. 이런 뻘짓을 안하려면 어떻게 해야할까? ‘쉬지않고 작업한다.’ 아주 쉬운 대비책이 있지만 이런 방식은 언제 또 올지 모르는 귀차니즘에 전혀 방어가 않기에 좀 더 근본적인 문제점을 생각해봤다. ‘커밋은 가능한 작은 단위로 한다.’ 어디서 들었는지는 모두 다르겠지만 다들 무슨 뜻인지 잘 알고 있다. 팀 프로젝트 더 큰 범위로는 회사의 경우, 이슈들을 잘게 쪼개고 커밋이나 PR도 ..

    Python Selenium Webdriver Chrome Option 관련 오류

    Python Selenium Webdriver Chrome Option 관련 오류

    ChromeDriver를 활용해 크롤링을 구현해놨는데 오늘 처음보는 에러가 나왔다. 내용을 읽어보니 chrome_options 라는 argument 가 안맞는 듯 해 혹시하고 Selenium 공식 사이트를 확인해 보았다. get_upcoming_items... __init__() got an unexpected keyword argument 'chrome_options' finally... Traceback (most recent call last): File "/home/runner/work/ShoesPlease/ShoesPlease/parser/get_upcoming_items.py", line 23, in get_upcoming_items driver = webdriver.Chrome('chrome..

    MPNowPlayingInfoCenter 제어센터 초기세팅 및 갱신하는 방법

    MPNowPlayingInfoCenter 제어센터 초기세팅 및 갱신하는 방법

    뮤직플레이어앱을 개발하면서 제어센터를 사용하기 위해 코드를 짰지만 webview에서 동영상을 재생하는 방식인 우리 앱에선 동작하지 않아 버리기엔 아까워 코드를 공유하고자 남깁니다. // 제어센터 초기세팅import MediaPlayerfunc MPNowPlayingInfoCenterSetting() { // 제어 센터 이벤트 수신 시작 // Info.plist에 // UIBackgroundModes : audio 또는 // Required background modes : App plays audio or streams audio/video using AirPlay 해주어야 합니다. UIApplication.shared.beginReceivi..