본문 바로가기

Swift63

[Swift] 자료형 - tuple(튜플) 스위프트에서 튜플은 여러가지 데이터들을 묶은 데이터 타입이다. 파이썬에도 비슷한 자료형인 튜플이 있지만, 개인적인 생각으론 파이썬의 튜플보다는 C의 구조체와 더 비슷하다. 파이썬에도 여러가지 확장 튜플이 있긴 하지만. 생성 튜플의 기본적인 생성 방법은 파이썬과 크게 다르지 않게 괄호() 사이에 데이터를 묶음으로 생성 할 수 있다. var tuple1: (Int, Double, String) = (0, 1.0, "2") var tuple2: ((Int, Int), [Double]) = ((3, 4), [5.0 , 6.0]) print("tuple1: ", tuple1) print("tuple2: ", tuple2) // tuple1: (0, 1.0, "2") // tuple2: ((3, 4), [5.0, .. 2023. 3. 1.
[백준]BOJ 16398 - 행성 연결 - Swift/MST https://www.acmicpc.net/problem/16398 16398번: 행성 연결 홍익 제국의 중심은 행성 T이다. 제국의 황제 윤석이는 행성 T에서 제국을 효과적으로 통치하기 위해서, N개의 행성 간에 플로우를 설치하려고 한다. 두 행성 간에 플로우를 설치하면 제국의 함 www.acmicpc.net 모든 행성을 연결해야 하고, 그 비용을 최소로 하려면 최소 스패닝 트리(MST)를 찾아야 한다. 따라서 알고리즘의 흐름은 다음과 같아진다. 1. 2차원 배열로 입력받은 플로우 관리비용을 정렬한다. 2. Kruskal 알고리즘을 이용해 최소 스패닝 트리를 구한다. 여기서 에지(플로우 관리비용)의 정보가 2차원 배열로 입력되므로 배열을 순회하여 (노드, 노드, 비용)꼴의 튜플 배열로 만들어 정렬했다... 2023. 2. 25.
[백준]BOJ 4195 - 친구 네트워크 - Swift/Union-Find Set https://www.acmicpc.net/problem/4195 4195번: 친구 네트워크 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스의 첫째 줄에는 친구 관계의 수 F가 주어지며, 이 값은 100,000을 넘지 않는다. 다음 F개의 줄에는 친구 관계가 생긴 순서대로 주어진 www.acmicpc.net 전형적인 Union-Find 문제이지만, 각 원소들이 정수가 아닌 문자열로 구성되어 있는 특징이 있다. 정수를 문자열로 대응시키는 것은 Dictionary를 쓰면 쉽게 할 수 있으므로 다음과 같은 방식으로 알고리즘이 진행된다 1. 입력값(문자열 2개)에 대해 각 문자열이 Dictionary에 대응되는 Value가 있는지 판단한다. 2. 1에서 없다면 Dictionary에 [String:.. 2023. 2. 23.