본문 바로가기

전체 글

(67)
Algorithm(Swift) - 신규 아이디 추천 프로그래머스 2021 KAKAO BLIND RECRUITMENT 신규 아이디 추천 문제입니다. 해당 문제 같은경우는 어떻게보면 7가지 스텝으로 나뉘어져 있기때문에해당 스텝에 맞춰서 해결해 나가면 편합니다. 문제 키포인트 입니다. 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. 4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다. 5단계 new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다. 6단계 new_id의 길이가 16자 이상이면, new..
Algorithm(Swift) - 부족한 금액 계산하기 프로그래머스 위클리 챌린지 1주차에 있는 부족한 금액 계산하기 문제입니다. 입출력 설명상에서 이용금액이 3인 놀이기구를 4번 타고 싶은 고객이 현재 가진 금액이 20이라면, 총 필요한 놀이기구의 이용 금액은 30 (= 3+6+9+12) 이 되어 10만큼 부족하므로 10을 return 합니다. 다음과 같은 예시를 보여주고있기때문에 카운트만큼 반복하는 수를 만들고 반복할때마다 price 값과 곱하여 그 값은 누적합니다. 누적한 금액과 필요한 금액을 빼서 최종 금액을 양수를 위해서 -1을 곱해줘서 리턴 합니다. func solution(_ price:Int, _ money:Int, _ count:Int) -> Int64{ let array = Array(1...count) let worldPrice = arr..
Algorithm(Swift) - H-Index 프로그래머스 정렬에 있는 H-Index 입니다. 프로그래머스 상에 있는 키포인트를 읽을려고 했으나..... 도저히 이해를 못한탓에 다른 사이트에서 찾아 이해했습니다. https://www.ibric.org/myboard/read.php?Board=news&id=270333 [연구논문을 위한 핵심 10단계] H-지수(H-Index) 란 무엇인가? 일반적으로 특정 연구원의 연구성과를 평가하기 위해 얼마나 많은 논문을 발표 하였는지를 보게됩니다. 그러나 단순히 발표한 논문 수로만 그 연구원의 연구 업적을 평가 하기에는 발표한 논문 www.ibric.org 피인용수가 논문수와 같아지거나 피인용수가 논문수보다 작아지기 시작하는 숫자가 바로 나의 h가 됩니다 인덱스를 1부터 시작하고 인용수와 비교하여 총 인덱스보다..
Algorithm(Swift) - 가장 큰 수 프로그래머스 정렬에 있는 가장 큰 수 입니다. 해당 문제의 키포인트 입니다. [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210 입니다. 배열에대해 첫번째 값과 두번째 값을 비교했을때 더 큰값에 대해 정렬한다 ex) 0과 6 값이 있다면 06 와 60 비교하여 정렬한다. 최종적으로 정렬한값은 String으로 변환한후 배열이 아닌 값으로 리턴한다. 정렬한 값의 첫번째값이 0 일경우 나머지 값도 다 0이기때문에 0 으로 리턴한다 -> 0000 으로할경우 답이 아님. import Foundation func solution(_ numbers:[Int]) -> String { let sorted = numbers.sorted {..
Algorithm(Swift) - 모의고사 프로그래머스 완전 탐색에 있는 모의고사 문제입니다. 해당 문제의 키포인트 입니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 결국 수포자의 방식은 각각의 반복 형식으로 이루어져 있습니다. 입력값의 필터를 걸어 해당값과 수포자의 정답값을 비교합니다. 시험은 최대 10,000 문제까지 제공되지만 배열을 그만큼 초기화 할수는 없기에 나머지값을 줘서 계속 반복적이게 형식에 맞춰 비교를 할수 있게 합니다. 1,2..
Swift - TextView PlaceHolder TextField 같은 경우는 기본적으로 제공되는 기능입니다 하지만 TextField 같은경우는 한줄로만 표현할수 있어서, TextView 를 통해 입력값을 받는 경우도 자주 있습니다 이번엔 TextView 에 PlaceHolder를 간단하게 달아보겠습니다 초기 보여줄 상태에 대해 초기화를 진행하고 텍스트를 입력하기 시작할때 현재 상태에 대해 비교를 합니다 (색상이 아닌, placeHolder 문자열로 비교 가능) -> textViewDidBeginEditing 입력을 마무리 했을경우 해당 문자열을 비교해서 PlaceHolder 를 재 구성 합니다. -> textViewDidEndEditing 1. 일반적인 방법 import UIKit class ViewController: UIViewController..
Swift - Combine VS RxSwift 1. combine VS RxSwift Reactive 프로그래밍 이라는 점의 공통점을 가지고 있다. Rx는 iOS 이상부터, Combine는 iOS 13이상부터 사용가능하다. Rx는 Third party framework인 반면 Combine은 애플에서 만든 framework 이다. 그리고 Rx는 Rxcocoa(UiKit)에서 Combine은 SwiftUI와 UIBinding을 하도록 만들어져있다. Combine RxSwift Publisher Observable Subscriber Observer Cancellable Disposable CurrentValueSubject BehaviorSubject PassthroughSubject PublishSubject eraseToAnyPublisher as..
Swift - UITableView + ListClick 오늘은 테이블뷰에 간단하게 클릭 이벤트를 줄예정이다. 테이블뷰를 가지고있는 팝업을 띄워 각각의 리스트는 오직 하나의 아이템만 클릭할수 있게 만들어놨다. 해당 아이템은 다시 클릭하면 해제 할수 있게 만들어 일반적으로 떠오르는 팝업형 리스트뷰를 만들어보자. 결과 먼저 보고 들어가겠습니다.. 기본적인 테이블뷰 구성하는 부분은 제외 했습니다. 1. 결과 2. TableViewController import UIKit import RxSwift import RxCocoa import RxGesture protocol TableViewDelegate { func selectSnack(snack : String) } class TableViewController: UIViewController { @IBOutlet ..