https://sweetdev.tistory.com/120 불러오는 중입니다... 이 글에서 '스택 없이 트리를 traverse 하는 법에 threaded binary tree를 쓰는 방법'이 있다고 했는데, 오늘은 그 방법에 대해서 다뤄보려고 한다. binary tree에서는 inorder traverse 하기 위해서 스택을 썼었다. (이제 혼자서도 잘짜요!..ㅎㅎ) 그럼, threaded binary tree에서는 어떻게 구현할까?? 이렇게 구현하면 된다고 한다.
쓰레드라는 표현을 굉장히 자주 들었는데 뭔지는 몰랐었다. 여기서 살펴보고자 한다! binary tree의 링크 표현을 보면, 실제 표현보다 더 많은 null link가 있다고 한다. 이진 트리에는 총 2n개의 링크 중에 n+1개의 null link가 있으니까, 과반수 이상이 놀고있는 링크인 것이다. 이것을 안타까워한 어떤 공머생이, null link를 Thread라는, 다른 노드를 가리키는 포인터로 대치하였다고 한다. 규칙은 다음과 같다 (1) ptr-> leftChild가 null이면, ptr-> leftChild를 inorder traverse 할 때, ptr 앞에 방문하는 노드에 대한 포인터로 대치한다. 이것은 null link를 ptr의 inorder predecessor에 대한 포인터로 대치하는..
for (int i=0; i
Delegate채택을 위해서 In this case, the output of the session is set to an AVCaptureMetaDataOutput object. The AVCaptureMetaDataOutput class is the core part of QR code reading. This class, in combination with the AVCaptureMetadataOutputObjectsDelegate protocol, is used to intercept any metadata found in the input device (the QR code captured by the device's camera) and translate it to a human-readabl..
이것도 이산수학에서 배운 내용이긴 한데, 기억이 가물가물하고 그때는 벼락치기 했으니까 다시 정리해볼게요!! Preorder Traversal Inorder Traversal Postorder Traversal 그리고 Levelorder Traversal 이케 세가지를 배울거라고 합니다 Preorder: 이름처럼, 자기 자신(root)-left-right Inorder: left-root-right Postorder: left-right-root 이렇게 생긴 바이너리 트리가 있다고 해 봅시다! 얘를 preorder, inorder, postorder로 traverse 해보아용 preorder: A-B-D-H-E-C-F-I-G-J-L-K inorder: D-H-B-E-A-I-F-C-L-J-G-K postor..
[사용자 허가 받기] iOS 앱에는 크게 두가지 종류의 위치 받아오는 방법이 있습니다. 1. When In Use * 기본적으로 앱을 사용중일때만 위치 정보를 받아오는 옵션입니다. 백그라운드 상태로 전환 시, location usage indicator (파란색 위치정보 제공중) 가 뜨고, 백그라운드에서 돌게 됩니다. 앱을 켜고 있을 때만 gps를 쓴다면: locationMan.requestWhenInAuthorization() Info.plist의 Information Property List의 딕셔너리에 key-value값 추가해주기 이 경우에는 키를 NSLocationWhenInUsageDescription으로 해야함 만약 특정 지역에 유저가 걸어 들어갔을 때 푸시를 띄워주고 싶다면 develope..
Array로 표현하기 이렇게 생긴 트리를 Array로 표현하려고 하면, 요런식으로 표현해서 넣는다고 한다! 왜 0번에는 아무것도 안넣었을까?? 나중에 쓰나!? 궁금하지만 역시 아직 모르니까 pass... Array[i]번째에 있는 Node는, 걔의 left child는 Array[2*i]에, right child는 Array[2*i + 1]에, Parent는 Array[(i/2)의 내림] 에 있다고 한다 i에 6을 넣어서 확인해보면, 6번째 칸에는 F가 있고 걔의 left child는 I, right child는 없음, parent는 C인데 과연 맞을까?! 12번째 칸 = I 13번째 칸 = 없음 3번째 칸 = C 다 맞다 ㅎㅎ Node로 표현하기 아까 그 그래프를 Node로 표현하면, Node 구조를 ..
안녕하세요 SweetDev입니다. 저는 지금 컴공 2학년 수업인 자료구조에서 트리를 배우는 중이라고 해서(사실 수업 잘 안가서 모름) 시험공부도 미리 할 겸 트리를 정리해보려고 합니다! 1. 정의 트리 : hierarchy구조의 데이터를 표현하기 위한 자료 구조 2. 트리를 표현하기 위해서 쓰는 단어들 Node Root Node Child Node , Children degree, fan out Sibling Ancestor Descendant Leaf node, Leaves, Non-Leaf Node Subtree Forest Path from node x to node y Level 0, 1, 2, ~ h-1 1, 2, 3, ~ h Height : max, level 이런 단어들을 배울 예정이라고 하..
css 연결하기 한 문장 안에 넣기 Lorem ipsum dolor. 태그 안에 넣기 태그는 보통 사이에 넣으나, HTML 문서의 어디에 넣어도 잘 적용됩니다. 이 방법은 HTML 문서 안의 여러 요소를 한번에 꾸밀 수 있다는 장점이 있으나, 또 다른 HTML 문서에는 적용할 수 없다는 단점이 있습니다. 이미지 있는 버튼 grid-row, grid-column justify-content div에 딱 맞는 이미지(버튼): section과 div의 차이: 내용이 서로 관계가 있다면 section, 없다면 div document.getElementById("1").innerHTML = "4"; innerHTML=" " : 예를 가지고 이해하는 것이 빠르다. 예를 들어 HTML로 [홍길동]이라는 콘텐츠를 화면..
[정의] forest는 n개의 disjoint tree의 집합이다 나무가 모이면 숲이 되듯, tree가 여러개 모이면 forest라고 부른다. forest는 tree의 개념과 매우 유사한데, 이는 '트리에서 루트를 제거하면 포리스트가 되기 때문'이라고 한다??? ㅇㅎㅇㅎ...원래 이렇게 생긴 거였구나... 다음 단원에서 'disjoint set'을 표현하기 위해서 forest를 사용할것이라고 한다. [forest를 binary tree로 변환하기] 1. forest에 있는 각 트리를 이진트리로 변환한다. 2. 변환된 모든 binary tree를 root node의 rightChild 필드를 통해 연결한다. 그러면... 요렇게 된다.(아직 그림 안넣음) 이 변환은 이렇게 정의할 수 있다고 한다. Tree1..
Intro 오늘은 하나의 뷰컨트롤러에서 다른 뷰컨트롤러로 데이터를 전달하는 방법을 알아보려고 해요! 지금 제가 하는 프로젝트에서, 저는 저 '시간표 알람 추가' 오른쪽에 있는 테이블 뷰에서 과목 이름, 시작 시간, 종료 시간을 입력받는데 이걸 여기 시간표에서 추가해줘야 하거든요!! 목차 view controller들끼리 데이터를 주고 받는 것은 iOS개발의 매우 중요한 부분이다. 데이터를 주고 받는 것에는 여러 방법이 있고, 각각의 장단점이 있다. 이 기사에서는 6가지 방법을 배울것이다 ((-> property, segue, property와 segue, delegation, closure, NotificationCenter을 이용함)) 제일 쉬운 접근부터 시작해서, 조금조금씩 복잡한 방법까지 써보자 !..
오늘은 datePicker에서 date를 딱 골랐을 때! label에 그 날짜가 나오게 하는 기능을 만들어보려고 합니다. @objc func handleDatePicker(_ datePicker: UIDatePicker) { textField3.text = datePicker.date.formatted } override func viewDidLoad() { super.viewDidLoad() datePicker.addTarget(self, action: #selector(handleDatePicker), forControlEvents: .valueChanged) } extension Date { static let formatter: DateFormatter = { let formatter = Date..
어쩐지 뭔가 이상했다........ print()를 찍는데.....아무것도 안나와서,,,,,,진짜로 함수가 call이 안된 줄 알았다...... didselect not working......검색을 개많이 해봐도 원하는 결과가 안나왔는데........ 알고보니..... 왜 오른쪽 네모는 파란색이 아니지...? ...............^^;;;;;;;;;;;;;;;; print is working 이런거 찍은 내 자신이 불쌍하다 흑흑
https://stackoverflow.com/questions/33046573/why-do-my-uitableviewcells-turn-grey-when-i-tap-on-them Why do my UITableViewCells turn grey when I tap on them? When I tap on the cells of my table view, they darken to a grey color, and don't turn back to white until I tap on a different cell. Is there some sort of Boolean I have to set for it to not do tha... stackoverflow.com 위에 링크 걸어둔 StackOverFl..
import UserNotifications func goPushAlarm(){ let content = UNMutableNotificationContent() content.title = "🎙✨강의 녹음할 시간이에요🎙✨" content.subtitle = "지금은 미적분학 수업을 녹음할 시간입니다! 시험기간을 위해서 미리 녹음해주세요😚" content.body = "11:00 AM ~ 1:00 PM 미적분학" var date = DateComponents() date.hour = 00 date.minute = 40 let trigger = UNCalendarNotificationTrigger(dateMatching: date, repeats: true) let request = UNNotificatio..
Github는 여러명이 동시에 한 프로젝트의 코드를 쓸 때, 버전관리를 위해서 주로 사용하는 툴입니다. 저는 주로 혼자 개발하기 때문에, 먼저 로컬 xcode에서 작업을 하다가, 아 github에 올려야지..하고 그때야 깃헙에 올리는 경우가 많은데요! 처음부터 github 세팅을 마치고 시작하는게 이상적이긴 하지만, 이 프로젝트가 github에 올릴만큼 오래 지속할 프로젝트인지 모르니, 적당히 작업을 하다가 올리게 되더라고요! 아무튼 '작업중인 xcode 프로젝트'를 깃허브에 연동하는 방법은 다음과 같아요. 그 전에, 프로젝트를 만들 때, Create Git repository on my Mac 에 이미 체크를 했었어야 해요!!!!!!! git을 좀 아시는 분들을 위해 설명을 조금 덧붙여보자면, 이 과정..
어케 해결할지 고민하다가 깃헙에 있는 글을 보고 따라해보기로 했다. The only way to get a static UITableView along with other controls on the same screen is to use a Container View. Follow this way, it works perfectly: Drag a ViewController onto your storyboard. Drag a TableViewController onto your storyboard. Next Drag a Container view to your ViewController and size it about the size you want (smaller than the view) -> whe..
https://www.iosinsight.com/inline-uidatepicker-swift-uiviewcontroller/ Inline UIDatePicker In Swift With UIViewController | iOS Insight This tutorial walks through implementing two inline UIDatePicker controls for selecting date/time values, and is written in Swift. There are examples out there that demonstrate an inline UIDatePicker. However, I’ll be illustrating some key additional featu www.i..
1. class PhotoViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate UIImagePickerControllerDelegate와 UINavigationControllerDelegate를 채택해준다 2. let picker = UIImagePickerController() 3. viewDidLoad에서 picker.delegate = self 4. addPhoto함수에서 UIAlertController와 UIAlertAction을 만들어서 controller에 action을 붙이고, controller을 present해준다. let actionSheet = UIAlertCont..