본문 바로가기

전체 글282

[Network] 02. 네트워크의 기본 규칙 네트워크의 규칙 프로토콜(protocol) 컴퓨터끼리나 컴퓨터와 단말기 사이와 같이 정보기기 간에 정보교환이 필요한 경우 이를 원활하게 교환할 수 있게 하기 위해 필요한 여러 가지 통신규칙과 방법의 집합을 의미한다. 상호 간에 이해할 수 있는 내용을 신뢰성이 유지되도록 표현하는 방식이다. 같은 통신 규약(communication protocol)을 사용하면 기종과 모델이 달라도 컴퓨터 상호 간에 통신할 수 있게 되고, 각각의 컴퓨터상에서 다른 프로그램을 사용하고 있더라도 컴퓨터 사이에서 데이터의 의미를 일치시켜 프로그램을 동작시킬 수 있게 된다. OSI 모델과 TCP/IP 모델 OSI 모델이란? (개방형 시스템 상호 연결) 다양한 통신 시스템이 표준 프로토콜을 사용하여 통신할 수 있도록 국제 표준화 기구.. 2021. 11. 25.
[Network] 01. 네트워크 기초 네트워크의 구조 네트워크 컴퓨터들 간에 정보 또는 데이터를 전달하기 위해 여러 대의 컴퓨터들을 서로 연결할 수 있도록 사전에 연결된 망을 의미. 네트워크를 통해 컴퓨터 간에 필요한 데이터(정보)를 주고받을 수 있다. 패킷 컴퓨터 네트워크에서 데이터를 주고받을 때 정해 놓은 규칙으로 컴퓨터 간에 데이터를 주고받을 때 네트워크를 통해 전송되는 데이터의 작은 조각을 말한다. 그렇다면 데이터를 한 번에 보내지 않고 작게 나누는 이유는 무엇일까? 큰 데이터를 그대로 보내면 해당 데이터가 네트워크의 대역폭을 너무 많이 차지해 패킷의 흐름이 원활하지 못할 수 있다. 이를 방지하기 위해 데이터를 패킷으로 나누어 보내는 것이다. ※ 대역폭 : 정보를 전송할 수 있는 단위 시간당 전송량 랜과 왠 랜(LAN, Local A.. 2021. 11. 25.
[iOS] @IBOutlet과 @IBAction 인터페이스 빌더의 객체를 코드와 연결하기 위한 어노테이션 스토리보드의 인터페이스 빌더에는 여러 가지 객체가 존재한다. 레이블이나 버튼 등 여러 객체를 코드와 연결하여 레이블의 프로퍼티를 변경하거나 특정 버튼을 클릭했을 때 어떤 동작을 발생시키기 위해 @IBOutlet과 @IBAction 어노테이션을 사용한다. @IBOutlet 화면상의 객체를 소스코드에서 참조하기 위해 사용하는 어노테이션이다. @IBOutlet 어노테이션은 객체의 속성을 제어하기 위해 사용한다. 간단한 예제로 살펴보자. 스토리보드에 하나의 Label이 추가되어 있는 상태이다. 앱을 실행했을 때 해당 Label의 텍스트를 "1"로 설정하기 위해서는 어떻게 해야 될까? 먼저 화면의 Label을 소스코드에서 참조하기 위해 @IBOutlet을 .. 2021. 11. 22.
1738. 골목길 (Swift, Python) https://www.acmicpc.net/problem/1738 1738번: 골목길 첫째 줄에 골목길들이 교차하는 지점의 개수 n (2 ≤ n ≤ 100)과 골목길의 개수 m (1 ≤ m ≤ 20,000) 이 차례로 주어진다. 이어지는 m개의 행에 각각의 골목길을 나타내는 세 정수 u, v, w가 차례로 www.acmicpc.net 풀이 민승이네 집(1번)에서 코레스코 콘도(n번)까지 가는데 있어서 최적의 경로를 찾는 문제이다. 가는 경로에 음수가 존재하므로 다익스트라 알고리즘으로는 해결할 수 없고 벨만 포드 알고리즘을 이용해서 해결 가능하다. 기존과의 차이점은 보통 목적지까지 최단 거리를 찾는거였다면 이번 문제는 금품의 양이 최대가 되는 경로를 찾는 것이다. 하나 주의할 건 기존의 벨만 포드 알고리즘.. 2021. 11. 18.
[iOS 기초] UIView 화면의 직사각형 영역에 대한 내용을 관리하는 개체 @MainActor class UIView : UIResponder 개요 뷰는 사용자 인터페이스의 기본 구성요소이며 UIView 클래스는 모든 뷰에 공통 동작을 정의한다. View 객체는 사각형 경계 내에 컨텐츠를 렌더링하고 해당 컨텐츠와의 상호작용을 처리한다. UIView 클래스는 인스턴스화하고 고정된 배경색을 표시하는 데 사용할 수 있는 클래스이다. 보다 정교한 컨텐츠를 위해 서브클래스화 할 수도 있다. 앱에서 볼 수 있는 라벨, 이미지, 버튼 및 기타 인터페이스 요소를 표시하려면 직접 정의하기 보다는 UIKit 프레임워크에서 제공하는 뷰 하위 클래스를 사용하면 된다. 뷰 객체는 앱이 사용자와 상호 작용하는 주요 방법이기 때문에 여러 임무가 있다. 다.. 2021. 11. 17.
[iOS 기초] UIKit 프레임워크 사용자의 인터페이스 관리, 이벤트를 처리하는 것이 주 목적인 프레임워크 UIKit 프레임워크는 iOS 및 tvOS용 앱을 구축하는 데 필요한 핵심 객체를 제공한다. 이러한 핵심 객체들은 컨테츠를 화면에 표시하고, 컨텐츠와 상호작용하며 시스템과의 상호 작용을 관리하는 데 사용된다. 앱은 기본 동작을 위해 UIKit에 의존하며, UIKit은 사용자의 요구에 맞게 동작을 사용자 정의할 수 있는 많은 방법을 제공한다. 모든 UIKit 앱은 다음과 같은 resource들을 필요로 한다. App icons Launch screen 스토리보드 [App icons] 앱 아이콘은 홈 스크린 등에 보여지는 그림이다. 이 그림을 통해서 사용자는 다른 앱과 해당 앱을 구분할 수 있다. 이러한 앱 아이콘은 여러 곳(홈 스크린,.. 2021. 11. 17.
[LeetCode] 64. Minimum Path Sum (Swift, Python) Minimum Path Sum - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 (0, 0)에서 출발하여 (m-1, n-1)까지 갈 때 grid에 적혀 있는 숫자의 합이 최솟값이 되는 경우를 찾는 문제. 간단하게 bfs를 사용해서 문제를 풀었는데 다른 사람들의 속도를 보니 dp를 활용하여 문제를 해결할 수 있는 것 같다. 추후에 dp에 대해서 공부할 때 다시 한 번 풀어봐야겠다. 코드 [Swift] 1 2 3 4 5 6 7 8 9 10 11 12 13 14.. 2021. 11. 16.
15422. Bumped! (Python) https://www.acmicpc.net/problem/15422 15422번: Bumped! The input consists of a single test case. The first line lists five space-separated integers n, m, f, s, and t, denoting the number of cities n (0 < n ≤ 50 000), the number of roads m (0 ≤ m ≤ 150 000), the number of flights f (0 ≤ f ≤ 1 000), th www.acmicpc.net 풀이 어떤 한 지점에서 시작해서 최단 거리를 구하는 문제로 다익스트라를 활용해서 문제를 해결할 수 있다. 이 문제에서 비교해야 할 것은 다음과 같.. 2021. 11. 16.
11657. 타임머신 (Swift, Python) https://www.acmicpc.net/problem/11657 11657번: 타임머신 첫째 줄에 도시의 개수 N (1 ≤ N ≤ 500), 버스 노선의 개수 M (1 ≤ M ≤ 6,000)이 주어진다. 둘째 줄부터 M개의 줄에는 버스 노선의 정보 A, B, C (1 ≤ A, B ≤ N, -10,000 ≤ C ≤ 10,000)가 주어진다. www.acmicpc.net 풀이 1번 도시에서 출발해서 나머지 도시로 가는 가장 빠른 시간을 구하는 문제이다. 1번에서 다른 모든 도시까지의 최단 경로를 구해주면 되는데 이때 걸리는 시간 C가 양수가 아닌 경우가 주어진다. 하나의 노드에서 다른 모든 노드까지의 최단 거리를 구하는 경우 대표적으로 다익스트라 알고리즘을 사용하면 되지만 다익스트라 알고리즘의 경우 간선.. 2021. 11. 14.