문제 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다. 위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다. N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오. 입력 첫째 ..
버블정렬 버블 정렬의 시간 복잡도 = O(N^2) 다음의 숫자들을 오름차순으로 정렬하는 프로그램을 작성하세요 1 10 5 8 7 6 4 3 2 9 버블 정렬은 선택 정렬과 마찬가지로 직관적인 해결 방법이다. 인접해 있는 두 숫자끼리 비교를 해서 더 작은 숫자를 앞으로 보내주는 것을 반복하는 것이다. 즉, 옆에 있는 값과 비교하여 더 작은 값을 반복적으로 앞으로 보내는 정렬 방법이다. 버블 정렬은 정렬 알고리즘 중에서 구현은 가장 쉽지만 가장 비효율적인 알고리즘이다. var i: Int var j: Int var temp: Int var arr = [1,10,5,8,4,2,5,7,4,3] for a in 0...10 { for b in 0...(9-a) { if arr[b] > arr[b+1] { temp..
일반적으로 알고리즘을 공부할 때 가장 먼저 풀어보는 문제는 "정렬(sort)"문제이다. 다음의 숫자들을 오름차순으로 정렬하는 프로그램을 작성하세요 1 10 5 8 7 6 4 3 2 9 선택 정렬 시간복잡도: O(N^2) - 가장 작은 것을 선택해서 제일 앞으로 보내는 알고리즘 - 가장 원시적이고 기초적인 방법 var min: Int var index: Int var temp: Int var arr = [1,10,5,8,7,6,4,3,2,9] for i in 0...10 { min = 9999 for j in i...10 { if min > arr[j] { min = arr[j] index = j } } temp = arr[i] arr[i] = arr[index] arr[index] = temp } 위 코..
알고리즘이란 문제를 해결하는 절차이다. 알고리즘은 입력, 출력, 유한성, 명백성, 효과성을 만족해야 한다. 알고리즘은 분석을 통해 좋고 나쁨을 평가할 수 있다. 알고리즘은 기초 프로그래밍과 자료구조를 공부한 이후에 배우면 좋다. 알고리즘은 논리이며 수학이고 실질적인 개발에 적용되는 기초적인 아이디어이다. 알고리즘은 '개발'의 전체 과정에 사용된다. 실제 프로그램을 개발할 때 효율적인 알고리즘을 적용함으로써 원하는 결과를 도출해야 한다. 스케줄 관리 프로그램: 달력에서 특정한 달에 해당하는 일 수는 어떻게 구할까? 내비게이션 프로그램: 여러 개의 중간 지점을 거쳐서 특정 지점으로 갈 때 가장 빠른 길은 무엇일까? 게시판 프로그램: 한 페이지당 게시글을 10개씩 출력해야 하는데 어떻게 출력할까? 출처: ht..
('https://www.notion.so/Flow-API-2883f2491c51498e887'이하 'Flooming')은(는) 「개인정보 보호법」 제30조에 따라 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립·공개합니다. ○ 이 개인정보처리방침은 2022년 8월 30부터 적용됩니다. 제1조(개인정보의 처리 목적) ('https://www.notion.so/Flow-API-2883f2491c51498e887'이하 'Flooming')은(는) 다음의 목적을 위하여 개인정보를 처리합니다. 처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며 이용 목적이 변경되는..
iOS에서 Toast메시지를 사용해보고자 했다. 검색 결과 비교적 예전에는 라이브러리가 존재하지 않아 사용자가 직접 View를 구성해 Toast 메시지를 띄웠던 것 같다. 그러나 Toast 메시지를 활용할 수 있는 외부 라이브러리가 존재한다는 것을 알게 되어 이를 사용해보았다. cocoapod을 활용하는 방법은 검색을 하면 다양한 블로그에서 이를 알려주고 있으니 이는 생략하도록 하겠다. podfile에 pod 'Toast-Swift', '~> 5.0.1' 을 입력한 후 pod install을 진행하면 라이브러리를 사용할 수 있다. 그 후 다음과 같이 라이브러리를 import한 후, Toast 메시지가 필요한 곳에 다음과 같은 코드를 작성하면 된다. import Toast_Swift self.view.ma..
특정 버튼을 눌렀을 때 앨범에 이미지를 다운로드하려는 기능을 구현하고자 했다. 우선은 info에 다음과 같은 항목들을 추가했다. [Privacy - Photo Library Additions Usage Description] 앱이 사용자의 사진 라이브러리에 대한 추가 전용 액세스를 요청하는 이유를 사용자에게 알려주는 메시지이다. [Privacy - Camera Usage Description] 앱이 기기의 카메라에 대한 액세스를 요청하는 이유를 사용자에게 알려주는 메시지이다. [Privacy - Photo Library Usage Description] 앱이 사용자의 사진 라이브러리에 대한 액세스를 요청하는 이유를 사용자에게 알려주는 메시지이다. 기타 info리스트에 대한 설명은 아래의 블로그를 참고하면..