본문 바로가기

전체 글

(426)
[iOS] Sections, Headers, Footers in TableView Secitons, Headers, Footers in tableView 이번에는 tableView 내에 존재하는 Sectioons, Headers, Footers에 대해 알아본다. tableView 구현을 위해 UITableViewDelegate, UITableViewDataSource 프로토콜을 채택한다. 예시 코드는 아래와 같이 작성하였다. import UIKit class ViewController: UIViewController { // Connect UITableView @IBOutlet var tableView: UITableView! let data = [ ["Apple", "MacOS", "iOS", "IpadOS"], ["one", "two", "three", "four"] ] overr..
[Algorithm] [Python&Swift] Programmers - 사전순 부분문자열 Programmers - 사전순 부분문자열 문제 설명 어떤 문자열 s가 주어졌을 때, s로부터 만들 수 있는 부분 문자열 중 사전 순으로 가장 뒤에 나오는 문자열을 찾으려 합니다. 부분 문자열을 만드는 방법은 다음과 같습니다. s에서 일부 문자를 선택해 새로운 문자열을 만듭니다. 단, 이때 문자의 순서는 뒤바꾸지 않습니다. 예를 들어 문자열 xyb로 만들 수 있는 부분 문자열은 다음과 같습니다. x y b xy xb yb xyb 이 중 사전 순으로 가장 뒤에 있는 문자열은 "yb" 입니다. 문자열 s가 주어졌을 때 s로부터 만들 수 있는 부분 문자열 중 사전 순으로 가장 뒤에 나오는 문자열을 리턴하는 solution 함수를 완성해주세요. 제한 사항 s는 길이가 1 이상 1,000,000 이하인 문자열입니..
[iOS] GCD (Grand Central Dispatch) GCD (Grand Central Dispatch) GCD란? GCD는 멀티 코어 환경에서 최적화된 프로그래밍을 지원하도록 애플이 개발한 기술 이라고 한다. 일반적으로 우리는 GCD를 Dispatch Queue라고 부른다. Dispatch Queue에 대하여 살펴보기 이전에 Serial Queue, Concurrent Queue, Sync, Async에 대하여 살펴본다. Serial Queue, Concurrent Queue 큐 자료구조는 우리가 알고있는 FIFO 형태의 자료구조를 의미한다. Serial & Concurrent Queue 모두 작동방식은 FIFO를 따른다. 그러면 직렬 큐(Serial Queue)와 동시 큐(Concurrent Queue)는 과연 무엇인지 먼저 살펴보자! 직렬 큐는 분산처..
[iOS] Alamofire 소개 및 데모 예제 Alamofire Alamofire를 사용해보면서 공부한 내용을 정리한다. Alamofire는 Swift에서 HTTP 통신을 하기 위해 이용되는 대표적인 오픈소스 라이브러리다. Alamofire가 제공하는 간략한 기능 소개는 아래와 같다. Request & Response 의 체이닝 함수 제공 URL / JSON 형태의 파라미터 인코딩 File / Data / Stream / MultipartFormData 등 업로드 기능 HTTP Response의 Validation Request Request란, 이름 그대로 요청을 보내기 위해 사용하는 함수이다. Alamofire.request에는 다양한 인자가 존재한다. 기본 사용법 Alamofire.request("URL") HTTP Methods - metho..
[Algorithm] [Python&Swift] 백준/BOJ - 1920 _ 수 찾기 1966 - 수 찾기 INDEX 문제 입력 출력 예제 입출력 제출 코드 문제 풀이 문제 N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1≤N≤100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1≤M≤100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다. 출력 M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다. 예제 입출력 입력 : 5 4 1 5 2 3 5 1 3 7 9 5 출력 :..
[Algorithm] [Python] 백준/BOJ - 11279 _ 최대 힙 11279 - 최대 힙 문제 설명 널리 잘 알려진 자료구조 중 최대 힙이라는 것이 있다. 최대 힙을 이용하여 다음과 같은 연산을 지원하는 프로그램을 작성하시오. 배열에 자연수 x를 넣는다. 배열에서 가장 큰 값을 출력하고, 그 값을 배열에서 제거한다. 프로그램은 처음에 비어있는 배열에서 시작하게 된다. 입력 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이라면 배열에서 가장 큰 값을 출력하고 그 값을 배열에서 제거하는 경우이다. 입력되는 자연수는 2^31보다 작다. 출력 입력에서 0이 주어진 회수만큼 답을 출력한다. 만약 배열이 비어 있는 경우인..
[Algorithm] [Python] 백준/BOJ - 1927 _ 최소 힙 1927 - 최소 힙 문제 설명 널리 잘 알려진 자료구조 중 최소 힙이라는 것이 있다. 최소 힙을 이용하여 다음과 같은 연산을 지원하는 프로그램을 작성하시오. 배열에 자연수 x를 넣는다. 배열에서 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. 프로그램은 처음에 비어있는 배열에서 시작하게 된다. 입력 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이라면 배열에서 가장 작은 값을 출력하고 그 값을 배열에서 제거하는 경우이다. 입력되는 자연수는 2^31보다 작다. 출력 입력에서 0이 주어진 회수만큼 답을 출력한다. 만약 배열이 비어 있는 경우..
[Algorithm] [Python&Swift] Programmers - 최솟값 만들기 Programmers - 최솟값 만들기 문제 설명 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱한 값을 누적하여 더합니다. 이때 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다. (단, 각 배열에서 k번째 숫자를 뽑았다면 다음에 k번째 숫자는 다시 뽑을 수 없습니다.) 예를 들어 A = [1, 4, 2] , B = [5, 4, 4] 라면 A에서 첫번째 숫자인 1, B에서 두번째 숫자인 5를 뽑아 곱하여 더합니다. (누적된 값 : 0 + 5(1x5) = 5) A에서 두번째 숫자인 4, B에서 세번째 숫자인 4를 뽑아 곱하여 더합니다. (누적..