• [JAVA] 기본문법 - 변수, 형변환, 배열

    Java1. 기본문법1). 변수 타입에 따라 크기가 달라 타입 기본형 primitive type(8개) : 미리 정해진 크기의 데이터 표현 / 변수 자체에 값 저장 논리형 boolean 정수형 byte, short, int(32bit, 약 20억개 저장, 부호비트 → -128~127), long 실수형 float(32bit) double(64bit) → 정밀도 차이 문자형 char 참조형 reference type : 크기가 미리 정해질 수 없는 데이터의 표현 / 변수에는 실제 값을 참조할 수 있는 주소만 저장 변수 예제1public class Lang_01 { public static void main(String[] args) { int i1 = Integer.MAX_VALUE; int i2 = i1..

  • [JAVA] Maven, pom.xml

    Maven : 자바 프로젝트의 빌드 자동화 도구 의존관계 라이브러리 자동화 도구 / 빠르게 늘어나는 라이브러리 추가 및 버전 관리를 위해 사용 / ant → maven → gradle 순서로 등장 https://mvnrepository.com/ org.json json 20231013 maven은 필요한 라이브러리를 pom.xml에 정의해 두면, 내가 사용할 라이브러리와 그 라이브러리가 작동하는데 필요한 다른 라이브러리까지 관리해서 네트워크를 통해 자동으로 다운받아 준다. 중앙 저장소를 통한 자동 의존성 관리를 중앙 저장소라는 라이브러리를 공유하는 파일 서버 pom.xml : maven을 이용하기 위해 pom 사용 이 파일을 통해 프로젝트의 모든 설정, 의존성 알 수 있음

  • [JAVA/WEB] 웹 구동 원리

    개발언어 컴파일 언어 : 실행파일 → 컴파일 / OS 종속적, 수행속도 빠름 인터프리터 언어 : 소스 → 실행 (브라우저가 번역) / HTML / OS독립적, 번역해야 하니까 수행속도 느림 자바는 컴파일, 인터프리터 기반 둘 다 - 자바는 플랫폼/DBMS/WAS에 독립적 / 수행속도도 빨라 소스 코드 작성 HELLO.java (javac) HELLO.class (byte code) - 중간단계 기계어 - 번역기(JVM)에 의해서 번역 실행 HELLO → JDK - 개발 키트 JVM - 번역기 역할 Api - jar 형식으로 클래스 묶음 제공 JRE - JVM + API : 자바 실행 환경HTML5 - 표준화한 것static / dynamic contentsCGI CGI : common gateway in..

  • [개발] JAVA 기초

    자바 데이터 타입 기본형 정수형 byte 8bit/short 16bit/int 32bit(기본)/long 64bit, 실수형 float 32bit/double 64bit(기본), 논리형 boolean, 단일문자형 char(2byte, 16bit, ‘A’,’광’) 참조형(객체형) 모든 클래스 - 인터페이스, 배열 문자열 : java.lang.String (’A’, ‘광’, ‘광주5반’) 실수형은 f 붙여야 함. 더블형은 d 안붙여도 됨 Type Casting(형변환)기본형 : 작은 타입은 큰 기억 공간 (정수형, 단일문자형 → 실수형)참조형(객체형) : 작은 타입 (자식타입 sub class) → 큰 타입(부모타입 - super class) 자동 형변환 : 작은 타입의 데이터는 큰 타입의 기억공간에 자동 ..

  • 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] 백트래킹 9663번 N-Queen 답지 참고

    [PS] 백트래킹 9663번 N-Queen 답지 참고

    https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 처음 풀이 let n = Int(readLine()!)! var cnt = 0 var graph = Array(repeating: 0, count: n) func checkQueen(row: Int) -> Bool { for i in 0.. 한정조건 func checkQueen(row: Int) -> Bool { for i in 0..왼쪽 대각선을 고려해서 문제를 풀이했다... 이 방법이 더 어려운 것 같은데....

  • [PS] 백트래킹 - n과m(11) (12), 부분수열의 합 1182

    import Foundation let nm = readLine()!.split(separator: " ").map { Int($0)! } let n = nm[0] let m = nm[1] let num = readLine()!.split(separator: " ").map { Int($0)! }.sorted() var output = Array(repeating: 0, count: m) func backtrack(_ index: Int) { if index == m { print(output.map { String($0) }.joined(separator: " ")) return } var used = Set() // 똑같은 조합을 체크하기 위한 집합 for i in 0.. backtracking마다 ..

  • [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..