안녕하세요. 밀쿄입니다. 오늘은 유니온 파인드라는 알고리즘에 대해서 알아보겠습니다. 유니온 파인드는 그래프 알고리즘의 일종 입니다. 그리고 합집합 찾기라는 의미를 담고 있습니다. 이렇게 말하면 감이 안오지만 쉽게 말하자면 "여러 가지 노드가 있을 때, 두 노드를 선택하여 가 같은 그래프에 속하는 지 판별하는 알고리즘" 이라고 생각하시면 편할 것 같습니다. 따라서 이 알고리즘은 두 가지 연산으로 이루어져있습니다. 이름에도 나와있듯이 유니온(Union) 연산과 찾는(Find) 연산입니다. Union은 두 노드가 속해있는 집합을 합치는 연산입니다. Find는 한 노드가 어떤 집합에 포함되어 있는 지 찾는 연산 입니다. 예시를 하나 들어보겠습니다. 처음에는 1, 2, 3이 있다고 가정해봅시다. 각각의 원소들은 ..
안녕하세요. 밀쿄입니다. 오늘은 문제하나를 들고왔습니다. 풀다보니 이건 기록을 해야겠다 싶어서 포스팅을 해봅니다. https://programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제 입니다. 문제의 지문을 이해하기엔 크게 어려움이 없는 문제입니다. 문제의 요지는 k개 수를 제거했을 때 얻을 수 있는 가장 큰 수를 구하는 것 입니다. 먼저 예제를 보면 1924는 두 개의 수를 제거하여 19, 12, ,14, 92, 94 , 24 정도를 만들 수 있는데 94가 제일 크니..
안녕하세요. 밀쿄입니다. 오늘도 문제하나를 같이 풀어보겠습니다. https://programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제는 우선순위 큐를 사용하는 문제입니다. 먼저 큐와 우선순위 큐 두 개를 만들어 줍니다. 큐는 배열의 인덱스와 함께 우선순위를 저장해줍니다, 그리고 우선순위큐는 우선순위를 정렬해서 저장해줍니다. 자 이렇게 해주고 나면 이제 당연하게 큐에서 하나 pop하고 우선순위큐에서 pop을 해서 우선순위를 비교해줍니다. 우선순위가 같다면 당연히 인쇄를 ..
문제 요약 2016년 a월 b일이 무슨 요일인지 리턴하는 함수 작성 2016년은 윤년 2016년 a월 b일은 실제로 있는 날 접근 00. a월 b일이 총 몇 일째인지 구해서 7로 나누자 01. 2016년 1월 1일이 무슨 날? - 금요일 -> 1월 1일 -> 총 하루 -> 7을 1로 나눈 나머지 즉, 1일 때 금요일 -> 1 - 금, 2 - 토, 3 - 일, ... , -목 코드 func solution(_ a:Int, _ b:Int) -> String { var answer: String = "" var totalDay: Int = b var monthDay: Int = 0 for index in 1..= 8 && index % 2 == 0 ){ monthDay = 31 } else if index =..
안녕하세요. 밀쿄입니다. 오늘은 이진 탐색 트리에 대해서 알아보겠습니다. 이진 탐색트리는 두 자료구조를 결합한 자료 구조 입니다. 그 자료 구조 중 하나는 탐색이 빠르지만 삽입 삭제가 안되고 다른 하나는 삽입 삭제는 빠르지만 탐색에 O(n)이란 복잡성을 가지고 있습니다. 그래서 그 두개를 합쳐서 탐색이 빠르고 삽입삭제가 빠른걸 만들고자 고안이 되었습니다. 그래서 그 두 개가 무엇인지 궁금하실텐데 바로 이진 트리와 연결리스트입니다. 자 그럼 이진 탐색 트리에 대해 본격적으로 알아보겠습니다 이진 탐색트리는 다음과 같은 특징을 가지고 있습니다. 각 노드의 왼쪽 서브트리에 있는 노드의 값은 부모 노드보다 그 값이 작다. 각 노드의 오른쪽 서브트리에 있는 노드의 값은 부모 노드보다 그 값이 크다 들어가기전에 스위..
안녕하세요. 밀쿄입니다. 오늘은 이진트리에 대해서 알아보겠습니다. 이진 트리는 최소한 2개의 자식 노드를 가지고 있습니다. 그럼 스위프트 코드로 한 번 만들어보겠습니다. 일단 트리는 노드로 구성되어있습니다. 그럼 먼저 노드란 클래스를 구성합니다. 그 후 그 노드가 가지는 값을 표현하는 프로퍼티와 자식노드를 나타내는 프로퍼티가 존재하면 될 것 같습니다. public class BinaryNode { public var value: Element public var leftChild: BinaryNode? public var rightChild: BinaryNode? public init(value: Element) { self.value = value } } 이렇게 해주면 될 것 같습니다. 트리에는 세 가..
안녕하세요 밀쿄입니다. 오늘은 알고리즘 문제를 들고왔습니다. 쉬운 문제이니 들고왔으니 다같이 풀어봅시다 https://programmers.co.kr/learn/courses/30/lessons/42840?language=swift 코딩테스트 연습 - 모의고사 | 프로그래머스 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4..
안녕하세요 밀쿄 입니다. 오늘은 잡담없이 바로 시작합니다. 오늘은 원형큐라는 걸 갖고왔습니다 조금 어렵지만 금방 이해하실꺼라 믿습니다. 바로 원리부터 들어가보도록 하죠. 자 여기 손그림이 아니라 큐가 있습니다. Read포인터랑 write포인터가 있습니다 이 상태에서 write가 되면 이렇게 write가 증가합니다. 여기서 하나더 들어오면 아래 그림처럼 하나 더 늘어나겠죠? 여기서 이제 read를 하면.. 이렇게 됩니다 Read가 하나 늘어나죠. 이렇게 가다가.. 큐가 다차면 write가 처음으로 돌아와서 오버라이드 합니다. 이렇게 가득차면 처음으로 돌아와서 원형버퍼 ,링버퍼, 뭐 그렇게 부릅니다. 참고로 저렇기 때문에 크기가 한정적입니다. (반대로 애기하면 크기를 모르면 못 쓰겠네요 ) 이걸 응용해서 큐..
- Total
- Today
- Yesterday
- 현업이그리운
- programmers
- 스유
- replaceNil
- 스택뷰
- SwiftUI
- compactMap
- 알고리즘
- Queue
- UIViewControllerRepresentable
- 자료구조
- 스위프트유아이
- CombineLatest
- combine
- swift
- iOSCombine
- 텔큐온
- Just
- BBIK
- 스위프트
- Apple
- 콤바인
- 삨
- 결합연산자
- ErrorHandling
- AutoLayout
- MVC
- ios
- SEQUENCE
- 유니온파인드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |