• 8/29

    2023년 디지털금융 혁신과 도전(1) “확연히 달라진 고객, UI·UX 전략이 금융 플랫폼 성패 좌우” https://www.ddaily.co.kr/page/view/2023071523103625422 [기획 / 2023 디지털금융] “확연히 달라진 고객, UI·UX 전략이 금융 플랫폼 성패 좌우” 오투유엑스(O2UX) 안수진 대표... www.ddaily.co.kr 금융권이 플랫폼 금융 경쟁에 나서면서 UI/UX 전략적 가치가 높아짐 - 고객에게 선택 권한이 이양 즉, 금융서비스가 고객에게 맞추지 않으면 선택 받을 수 없는 시대 국내 금융권의 이같은 현상을 앞당긴 정책이 바로 '마이데이터 서비스' - 이에 기반한 초개인화 더욱 심화 = 디지털 노마드 세대가 됨 특히, 우리 일상 생활에서 뗄래야 뗄 수..

  • 8/25

    50년 주담대 어느 장단에 맞출까…은행권 “어찌하옵니까” https://n.news.naver.com/mnews/article/018/0005559108?sid=101 50년 주담대 어느 장단에 맞출까…은행권 “어찌하옵니까” 은행권이 50년 만기 주택담보대출(주담대)을 놓고 골머리를 앓고 있다. 당초 정부의 정책금융상품인 특례보금자리론 공급에 발맞춰 금리 상승기 취약차주를 보호한다는 목적으로 50년 만기 주담 n.news.naver.com 가계부채 급증 원인 - 50년 만기 주담대 은행 때문이라고 보는 당국 (근데 정부가 지난해8월 주택금융공사에서 서민 주거 안정을 위해 실행했음) - 카뱅, 수협, 대구 : 만 34세 이하만 선택 가능하도록 연령제한 - 농협 : 이달까지만 판매 - 경남 : 28일부터 잠..

  • 8/21

    하나은행, 무디스 신용등급 Aa3 상향 조정 https://n.news.naver.com/article/092/0002302317?sid=105 무디스 "하나은행 신용등급 한 단계 격상" 하나은행은 글로벌 3대 신용평가사 중 하나인 '무디스(Moody's)'로부터 평가 받은 기업 신용등급이 기존 ‘A1’에서 ‘Aa3’로 한 단계 상향됐다고 18일 밝혔다. 하나은행의 장기신용등급은 A1에서 Aa n.news.naver.com 글로벌 3대(S&P, 피치, 무디스) 신용평가사 무디스로부터 기업 신용등급이 기존 A1 -> Aa3 한단계 상향 장기신용등급은 A1 -> Aa3, 독자신용등급은 Baa1 -> a3으로 한단계씩 상향, 등급전망 - '안정적' 이유 : 하나은행 측) 1. 자금조달구조개선 및 자산부채종합관..

  • [PS] DP - LIS 11053 가장 긴 증가하는 부분수열

    // LIS DP 공식 let n = Int(readLine()!)! let aList = readLine()!.split(separator: " ").map { Int($0)! } var dp = Array(repeating: 1, count: n) // 배열을 순회하면서 각각의 인덱스를 비교해서 어떤 기준값보다 큰 값이 있으면 기준값을 수정해주는 과정 for i in 1..

  • [PS] 백트래킹 - n과m(9) 15663 어려움 시간초과 이슈 악

    15663 (9) 시간초과 이슈 8개 중 8개를 고를 수 있어서 8^8 시간복잡도인데 내가 푼 방식은 contains 부분에서 시간복잡도가 추가로 증가하게 된다. 그래서 시간초과 이슈가 생긴다.import Foundation let nm = readLine()!.split(separator: " ").map { Int(String($0))! } let n = nm[0] let m = nm[1] var array = readLine()!.split(separator: " ").map { Int(String($0))! }.sorted(by:

  • [PS] 백트래킹 20문제 풀기 - 0. 개념, 1. n과m(1) ~ (4)

    [PS] 백트래킹 20문제 풀기 - 0. 개념, 1. n과m(1) ~ (4)

    앞으로 4/17~23 이번주는 백트레킹 문제만 조지기로 다짐했다. 이번주 20문제를 풀고 익혀보자. 이번주 헤치울 문제들 https://www.acmicpc.net/step/34 백트레킹 개념 정리 모든 경우의 수를 전부 고려하는 알고리즘으로 답이 될 수 없는 후보는 더이상 탐색하지 않고 다시 돌아가는 알고리즘 모든 경우의 수를 전부 다 고려하는 브루트포스 (완전탐색)보다 더 시간을 절약할 수 있다. 완전탐색의 대표적인 방법 중 하나가 DFS로, 재귀를 이용해서 현재시점에서 방문할 곳을 탐색하고 방문한다. 반면, 백트래킹은 비효율적인 경로를 차단하고 목표지점에 도달할 수 있는 가능성이 존재하는 곳만 탐색해서 가지치기라고 부른다. 백트레킹은 BFS나 DFS와 함께 구현한다. 그러나 해당 노드가 조건에 부합..

  • [Rx] Combine Operator

    [Rx] Combine Operator

    Combine Operator startWith concat merge combineLatest zip withLatestFrom sample switchLatest reduce -> transform 가장 마지막에 있음 startWith 옵저버블 시퀀스 앞에 새로운 요소를 추가 // MARK: - startWith : 옵저버블 시퀀스 앞에 새로운 요소를 추가 let num = [1,2,3,4,5] // 기본값이나 시작값 지정시 활용 Observable.from(num) .startWith(9999) // 2개 이상 연달아 사용 가능 .startWith(1111, 2222) .startWith(3333) .subscribe { print($0) } .disposed(by: bag) // Last In F..

  • [Rx] Transform Operator

    [Rx] Transform Operator

    Transform Operator toArray map compactMap flatMap flatMapLatest flatMapFirst concatMap buffer window groupBy scan (reduce까지) toArray 원본 옵저버블이 방출하는 모든 요소를 하나의 배열로 바꿔서 방출해줌 // MARK: - toArray : 원본 옵저버블이 방출하는 모든 요소를 하나의 배열로 바꿔서 방출해줌 let numbers = [1,2,3,4,5,6,7,8,9,10] let subject = PublishSubject() subject .toArray() // single로 변환, 하나의 요소로 변환 .subscribe { print($0) } .disposed(by: bag) subject.onN..

  • [Rx] Sharing Operator

    Sharing Operator share multicast, Connectable Observable publish replay, replayAll refcount share let bag = DisposeBag() let source = Observable.create { observer in let url = URL(string: "https://tistory.com")! let task = URLSession.shared.dataTask(with: url) { (data, response, error) in if let data = data, let html = String(data: data, encoding: .utf8) { observer.onNext(html) } observer.onComp..

  • [Rx] Time Based Operator

    Time Based Operator interval timer timeout delay delaySubscription interval // MARK: - interval 지정된 주기마다 정수를 방출 // period : 반복주기 // scheduler : 정수를 방출할 스케줄러 // 지정된 주기마다 정수를 계속해서 방출한다. 즉, 무한한 시퀀스를 생성하는 것! -> 직접 dispose를 해줘야 함 // int를 포함한 모든 정수형식을 사용가능하다. let i = Observable.interval(.seconds(1), scheduler: MainScheduler.instance) let subscription1 = i.subscribe { print("1 >> \($0)") } // 별도로 종료시키는..

  • [Rx] Conditional Operator

    [Rx] Conditional Operator

    Conditional Operator amb 여러 옵저버블 중에서 가장 먼저 이벤트를 방출하는 옵저버블을 선택하는 것 right 옵저버블이 left 옵저버블보다 먼저 방출됐기 때문에 left 옵저버블은 무시되고, rigth 옵저버블만 구독된다. 많은 서버 연결 시도 중 가장 먼저 응답을 준 서버와 통신하고 싶은 경우 사용한다. let bag = DisposeBag() enum MyError: Error { case error } let a = PublishSubject() let b = PublishSubject() let c = PublishSubject() // 소스 옵저버블이 2개로 제한될 경우 a.amb(b) .subscribe { print($0) } .disposed(by: bag) a.onN..

  • [Rx] Filtering Operator

    Filtering Operator ignoreElement elementAt skip take debounce throttle filter single distinctUntilChanged ignoreElement // MARK: - IgnoreElements next 이벤트를 필터링하는 연산자 let friends = ["소깡", "디온", "방구"] Observable.from(friends) .ignoreElements() .subscribe { print($0) } .disposed(by: bag) //completed elementAt // MARK: - elementAt 특정 인덱스에 위치한 요소를 제한적으로 방출하는 연산자 Observable.from(friends) .element(at: ..

  • [Rx] Create Operators

    Create Operators just, of, from range, generate repeateElement deferred create just, of, from import RxSwift let disposeBag = DisposeBag() let element = "🎀" // MARK: - just, of, from 옵저버블 생성에 사용한느 가장 단순하고 기초적인 세가지 연산자 // just는 파라미터로 전달한 걸 그대로 전달한다. // 🎀 Observable.just("🎀") .subscribe { event in print(event) } .disposed(by: disposeBag) // [1, 2, 3] Observable.just([1, 2, 3]) .subscribe { event i..

  • [PS] BOJ - 7576 토마토 골드5

    [PS] BOJ - 7576 토마토 골드5

    처음에 파이썬으로 풀었던 문제라 swift로 바꾸는 것은 쉽지 않았는데 시간초과 문제가 발생했다. 파이썬은 큐 라이브러리를 제공해주는 점과 다르게 swift는 큐가 제공되지 않는데 그 과정에서 removeFirst를 쓰는 부분이 문제였다. 맨 앞 요소를 삭제하면 각 요소들이 하나씩 앞으로 이동하는데 그러면 시간복잡도가 O(n)으로 시간초과가 발생하게 된다. 그러면 어떻게 해야 하냐? 기존에 removeFirst를 통해서 가장 맨 앞 요소를 삭제하고 -> 인덱스가 하나씩 당겨졌을 것이다. 이 대신에 index를 통해서 큐의 원소에 접근하는 방법을 사용하면 된다. index는 0부터 시작이고, queue.count는 1부터 개수를 센다. 그래서 index가 더 커지는 while문을 벗어나는 방식으로 구현해주..

  • [PS] 3/2 - BOJ 2644 촌수계산 - DFS

    [PS] 3/2 - BOJ 2644 촌수계산 - DFS

    https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net 나는 촌수계산하려면 각각 노드 간 깊이를 계산해줘야 되니까 DFS가 먼저 떠올랐는데 다른 사람들은 BFS로 풀었다고 한다. 왜 BFS라고 생각을 했을까? DFS랑 풀이법은 비슷한데 큐에 튜플을 통해서 (시작노드, cnt)를 넣어준 것이 BFS 특징 이렇게도 풀 수 있다는 걸 익혀야겠다. 우선, 하나씩 x = 7인 경우부터 노트에 다 그려보면서 이해를 했다. depth의 경우, ..