분류 전체보기(161)
-
[Swift 코테] 백준 24313 알고리즘 수업 - 점근적 표기 1
f(n) = a1 * n + a0 g(n) = n 모든 n >= n0에 대해 f(n) = n0에 대해 f(n) 7 ≤ n 일 때 모든 10 < n 이 성립한다. 2번 조건에서 n이 7보다 크거나 같으면 f(n)
2023.04.07 -
[Swift 코테 기초] -1을 입력받을 때까지 while let 사용하기
- -1을 입력받으면 종료하는 while문, 입력값을 계속 사용해야할 때 사용할 수 있다. while let input = readLine(), input != "-1" {}
2023.04.03 -
[Swift 코테 기초] 제곱근으로 약수 구하기
1. 약수 구하기 - N을 1부터 N까지의 수로 나눠서 그 값이 0이 되면 나눈 수는 N의 약수이다. 하지만 이 방법은 매우 비효율적이다. - N의 약수는 N의 제곱근보다 클 수 없기 때문에 범위를 N/2로 한다. - 주어진 수의 제곱근을 넘어선 약수는 이미 이전에 발견한 약수와 곱하여 나타낼 수 있기 때문 - 범위가 N/2이기 때문에 리턴 배열에 N이 포함되지 않으므로 추가해준다. ex) 36의 경우 6까지만 탐색한다. 6 이상의 숫자는 이미 이전에 발견한 약수와의 곱으로 표현할 수 있다. (12 * 3, 3 * 12) func solution(_ n: Int) -> [Int]{ return Array(1...n/2).filter { n % $0 == 0 } + [n] } print(solution(1..
2023.04.03 -
[네트워크] 7차시 - 응용계층(4)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 HTTP의 예를 통한 응용계층 최적화 및 DNS 등 추가 응용계층 프로토콜을 배운다. 1. DNS(Domain Name System) 인터넷에서의 ID(기계) IPv4: 32bit: xxx.xxx.xxx.xxx IPv6: 128bit: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx Domain Name 순수하게 인간을 위한 시스템 예) www.naver.com 응용계층(인터넷 5계층)에서만 관여한다. 1-1. Domain Name System 서비스 Domain Name → IP 주소 변환 Aliasing 관리: 같은 곳에 대해서 여러 개의 주소를 쓰게 하는 개념 동일한 IP에 다른 도메인 네..
2023.03.15 -
[네트워크] 6차시 - 응용계층(3)-3
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 FTP, HTTP와 같은 기본 응용 계층 프로토콜의 예를 배운다. 5. 네트워크 구조상 성능향상 Web Cache(Proxy Server) ISP에서 비용절감을 위하여 이전에 가져온적이 있는 문서를 DB에 임시 저장해두었다가 동일 문서가 다시 요청될 때 재사용 ISP: Internet Service Provider: 인터넷 서비스 제공자 동일 클라이언트가 동일 문서를 요청할 수도 있고, 다른 클라이언트가 동일 문서를 요청할 수도 있다. 가상적으로 웹캐쉬는 클라이언트에게 서버 역할을 하고, 웹캐시 DB에 문서가 없다면 웹캐시가 클라이언트 역할을 해서 서버에게 문서를 요청한다. ⇒ Web Cache는 중개상인의 개념, S..
2023.03.09 -
[네트워크] 6차시 - 응용계층(3)-2
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 FTP, HTTP와 같은 기본 응용 계층 프로토콜의 예를 배운다. 3. Cookie 웹 응용의 구조 웹 클라이언트: 홈페이지(응용 계층) - HTML 엔진(프레젠테이션 계층) - HTTP(세션 계층) 웹 서버: 서버 응용 - 서버 응용 엔진 - HTTP(세션 계층: stateless) 서버 응용: 로그인 정보, 장바구니 등 stateless 하지 않음 → 서버 응용이 앞의 요청과 뒤 요청이 동일한 사람인지를 구별하는 방법이 필요함: 쿠키 세션 계층은 stateless: 앞에 연결해서 자원을 주었는지에 대해서 뒤에 연결해서 자원을 줄 때 관여하지 않음 쿠키: 서버 응용이 클라이언트의 이전 작업 정보(state)를 파악하..
2023.03.09 -
[네트워크] 6차시 - 응용계층(3)-1
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 FTP, HTTP와 같은 기본 응용 계층 프로토콜의 예를 배운다. 0. 세션계층 컴퓨터끼리 어떻게 대화를 하는지에 대한 세부적인 내용에 대한 계층 FTP(File Transfer Protocol) 목적: 원격 호스트에 있는 파일을 가져오거나, 보내기 위한 프로토콜 가정 1) client 사용자는 server의 파일을 읽을 수 있는 권한의 계정이 있다. 가정 2) 계정이 없는 경우도 접근 가능하도록 FTP의 특징 세션 로그인과 종료가 존재 로그인을 통하여 파일에 접근할 수 있는 권한 획득 로그인 정보를 서버가 관리 ⇒ stateful protocol: 상태 정보를 서버가 이용, 관리 서버는 나의 상태, 나의 위치, ID..
2023.03.09 -
[Swift 코테 기초] reverse()와 reversed(), ReversedCollection<Array<Element>> 사용 방법
1. reverse() reverse()는 새로운 배열을 리턴하지 않고 배열 그 자체를 변경한다. var arr = [Int](1...10) arr.reverse() print(arr) //[10, 9, 8, 7, 6, 5, 4, 3, 2, 1] 2. reversed() reversed()는 컬렉션에서 역전된 순서의 요소를 새로운 뷰로 반환한다. 즉 원래 컬렉션의 값에는 변화가 없다. A ReversedCollection instance wraps an underlying collection and provides access to its elements in reverse order var arr = [Int](1...10) arr.reversed() print(arr) //[1, 2, 3, 4, 5,..
2023.02.22 -
[Swift 코테 기초] 배열 초기화 하기, [1, 2, 3, 4, ..., n] 증가하는 배열 초기화하기
var arr = [Int](1...10) //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] var n = 10 var arr2 = [Int](1...n) //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2023.02.22 -
[네트워크] 4 & 5차시 - 응용계층(1), (2)
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 응용계층의 개요에 대하여 설명한다. 클라이언트/서버, 소켓 통신에 대하여 배운다. 1. 응용계층 카톡, 스타그래프트 같은 네트워크 게임, 인터넷 검색, 인터넷 브라우저 상의 응용(구글 검색, 웹툰, 신문, 블로그, 카페, 금융), 메일 많은 서비스들을 서로 다른 프로토콜을 이용한다고 하면 문제가 많다. → 굉장히 많은 서비스들이 웹 브라우저를 사용, 인터넷 브라우저로 만들어진 HTML과 HTTP를 이용한 세션계층과 표현계층을 이용하면 응용계층만 구현하면 된다. 큰 틀에서 봤을 때 대략 어떠한 구조를 가져갈 것인가? 구조가 정의되어 있다면 기존의 세션, 프레젠테이션 계층을 사용할 수 있는가? 2. 네트워크 응용의 구조 ..
2023.02.22 -
[Swift 코테 기초] 2차원 배열에서 최소, 최대 찾기
let arr = [[50, 10, 30], [-10, -20, -30, -500], [100,200,300, -400]] let max = arr.map({$0.max()!}).max()! //300 let min = arr.map({$0.min()!}).min()! //-500
2023.02.16 -
[네트워크] 3차시 - 컴퓨터 네트워크의 계층
//공부 기록용 포스팅입니다. 틀린 부분이 있을 경우 댓글로 알려주시면 감사합니다! 😎 컴퓨터 네트워크는 계층화된 접근을 통하여 구성된다. 각 계층의 특징을 개략적으로 설명한다. 1. 계층 (ISO/OSI) 응용계층(Application): 분산된 시스템을 하나의 통합된 응용시스템으로 엮어주는 계층 응용시스템: 구글 검색 시스템, 종합 정보시스템, 네이버 웹툰, LOL 등 접하는 응용 자체 사용자와 서비스 제공자는 분산되어 있다. 멀리 떨어져 있다. 표현계층(presentation): 분산된 응용의 표현 방법에 대한 규약, UI 담당 추상적인 응용이라는 개념을 어떻게 눈앞에 표현할 것인지에 대한 규약 HTML(Hyper-Text-Markup-Language) 세션계층(session): 응용의 접속 및 객..
2023.02.10