
문제 설명 xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다. 먼저 모든 사원이 무작위로 자연수를 하나씩 부여받습니다. 각 사원은 딱 한 번씩 경기를 합니다. 각 경기당 A팀에서 한 사원이, B팀에서 한 사원이 나와 서로의 수를 공개합니다. 그때 숫자가 큰 쪽이 승리하게 되고, 승리한 사원이 속한 팀은 승점을 1점 얻게 됩니다. 만약 숫자가 같다면 누구도 승점을 얻지 않습니다. 전체 사원들은 우선 무작위로 자연수를 하나씩 부여받았습니다. 그다음 A팀은 빠르게 출전순서를 정했고 자신들의 출전 순서를 B팀에게 공개해버렸습니다. B팀은 그것을 보고 자신들의 최종 승점을 가장 높이는 방법으로 ..
Binary Heap(이진 힙)은 Complete Binary Tree 형식의 자료구조입니다. Complete Binary Tree는 배열에 기반하고 있기 때문에 random access가 가능합니다. Complete Binary Tree에 대한 설명은 아래 게시물을 참고해주세요. http://dvpzeekke.tistory.com/m/45 BST(Binary Search Tree, 이진 탐색 트리) BST(Binary Search Tree, 이진 탐색 트리) BST(Binary Search Tree, 이진 탐색 트리)는 이진 탐색 알고리즘을 트리에 적용한 자료구조입니다. 이진 탐색 트리의 정의는 다음과 같습니다. - 노드에 저장된 Key(키).. dvpzeekke.tistory.com Heap에는 Ma..
문제 설명 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다. 이전에 등장했던 단어는 사용할 수 없습니다. 한 글자인 단어는 인정되지 않습니다. 다음은 3명이 끝말잇기를 하는 상황을 나타냅니다. tank → kick → know → wheel → land → dream → mother → robot → tank 위 끝말잇기는 다음과 같이 진행됩니다. 1번 사람이 자신의 첫 번째 차례에 tank를 말합니다. 2번 사람이 자신의 첫 번째 차례에 ..
Set(세트) 세트는 같은 타입의 데이터를 순서 없이 하나의 묶음으로 저장하는 컬렉션 타입입니다. 한 세트의 요소들은 각각 중복되지 않습니다. 세트는 순서가 중요하지 않거나 각 요소가 유일한 값이어야 하는 경우에 사용합니다. var madeSet: Set = Set() var madeSet: Set = [] 위 두 문장은 같은 의미입니다. 빈 세트를 생성합니다. 변수 선언 부분이 Array(변수)와 유사하지만, 세트의 경우 변수 선언을 축약해 표현하지 못합니다. Array(변수)는 변수 선언 부분을 축약해 표현할 수 있습니다. 이에 대한 설명은 아래 포스팅을 참고해주세요. https://dvpzeekke.tistory.com/48 [Swift] 컬렉션형 - Array(배열) 스위프트는 많은 수의 데이터를..
Dictionary(딕셔너리) 딕셔너리는 요소들이 순서 없이 키와 값의 쌍으로 구성되는 컬렉션 타입입니다. 하나의 딕셔너리에는 중복 키를 가질 수 없습니다. var numberForName: Dictionary = Dictionary() var numberForName: [String: Int] = [String: Int]() var numberForName: [String: Int] = [:] 위 세 문장은 같은 의미입니다. 키가 String 타입이고, 값이 Int 타입인 딕셔너리를 생성합니다. 또 다른 컬렉션 타입인 Array(배열)이 isEmpty, count 프로퍼티를 갖는 것 처럼, 딕셔너리도 같은 의미의 isEmpty, count 프로퍼티를 가집니다. Array(배열)에 대한 설명은 아래 포스..
스위프트는 많은 수의 데이터를 묶어서 저장하고 관리할 수 있는 컬렉션 타입을 제공합니다. 컬렉션 타입에는 Array(배열), Dictionary(딕셔너리), Set(세트) 등이 있습니다. 배열 배열은 같은 타입의 데이터를 일렬로 나열한 후 순서대로 저장하는 형태의 컬렉션입니다. var names: Array = ["zeekke", "John"] var names: [String] = ["zeekke", "John"] 위의 두 줄은 같은 의미입니다. Array라는 키워드와 타입 이름의 조합 혹은 대괄호로 타입 이름을 지정하여 배열을 선언할 수 있습니다. var emptyArray: [Any] = Array() var emptyArray: [Any] = [Any]() 위의 두 줄 또한 같은 의미입니다. An..
Swift(스위프트)는 여러 가지 프로그래밍 패러다임을 차용한 다중 패러다임 프로그래밍 언어입니다. 명령형과 객체지향 프로그래밍 패러다임을 기반으로 한 함수형 프로그래밍 패러다임과 프로토콜 지향 프로그래밍 패러다임을 지향합니다. 결과적으로 스위프트에서 가장 강조하는 부분은 함수형 프로그래밍 패러다임과 프로토콜 지향 프로그래밍 패러다임입니다. 기존의 C언어는 명령형 프로그래밍 패러다임을 차용하고 C++, Java는 명령형 프로그래밍 패러다임과 객체지향 프로그래밍 패러다임을 동시에 차용한 다중 프로그래밍 패러다임 언어입니다. 스위프트는 여기에 함수형 프로그래밍 패러다임과 프로토콜 지향 프로그래밍 패러다임을 더한 언어입니다. 먼저, 현대 프로그래밍 언어에서 대부분 차용하고 있는 객채지향 프로그래밍 패러다임에 ..
문제 설명 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하도록 solution 함수를 완성해주세요. 제한사항 d는 부서별로 신청한 ..
BST(Binary Search Tree, 이진 탐색 트리) BST(Binary Search Tree, 이진 탐색 트리)는 이진 탐색 알고리즘을 트리에 적용한 자료구조입니다. 이진 탐색 트리의 정의는 다음과 같습니다. - 노드에 저장된 Key(키)는 유일하다. - 루트 노드의 키가 왼쪽 서브 트리를 구성하는 어떠한 노드의 키보다 크다. - 루트 노드의 키가 오른쪽 서브 트리를 구성하는 어떠한 노드의 키보다 크다. - 왼쪽과 오른쪽 서브 트리도 이진 탐색 트리이다. 이진 탐색 트리의 탐색 연산은 O(log n)의 time complexity를 갖습니다. 이진 탐색 트리의 높이는 log (n + 1)이기 때문입니다. 하지만 이진 탐색 트리가 한 쪽으로 편향되어 있다면(Skewed Tree, 편향 트리) ti..
Tree(트리) Tree(트리)는 Hierarchical Relationship(계층적 관계)를 표현하는 자료구조입니다. 트리를 구성하는 구성 요소들은 다음과 같습니다. - Node(노드) : 트리를 구성하는 각각의 요소 - Edge(간선) : 노드와 노드를 연결하는 선 - Root Node(루트 노드) : 트리의 최상위 노드 - Terminal Node( = leaf Node, 단말 노드) : 트리의 최하위 노드 - Internal Node(내부 노드, 비단말 노드) : 단말 노드를 제외한 모든 노드(루트 노드 포함) - Sub-Tree(서브 트리) : 루트 노드를 제거한 후 남아있는 부분 트리 - Degree of Node(노드의 차수) : 특정 노드에 연결된 서브 트리의 수 - Level(레벨) :..
- Total
- Today
- Yesterday
- Programmers
- datastructure
- 깊이우선탐색
- Xcode
- ios
- 서머코딩
- 구슬탈출
- 컬렉션
- dfs
- ec2
- SummerCoding
- 자료구조
- Swift
- count
- 이진트리
- Collection
- BFS
- 백준
- algorithm
- 호제법
- 프로그래머스
- c++
- isempty
- aws
- 알고리즘
- 삼성역량테스트
- 시뮬레이션
- 코딩테스트
- 스위프트
- dp
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |