적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

반응형

분류 전체보기 586

[Swift] reversed()

reversed() 사용법 func reversed() -> ReversedCollection 이 함수는 새로운 배열을 리턴하는 게 아니라, element을 역순으로 엑세스 할 수 있는 래퍼 유형을 반환한다. String.reversed() 따라서 다시 String으로 변환을 해줘야 문자열로 사용이 가능하다. let str = "Hello, world!" print(str.reversed()) //ReversedCollection(_base: "Hello") print(String(str.reversed())) //"!dlrow ,olleH" 정수 배열 func reversed() -> [Int] 마찬가지로 Int 형식의 배열일 때도 타입을 선언해주어야 한다. let arr = [1,2,3,4,5] pr..

Algorithm/참고 2022.01.16

[Swift 알고리즘] Programmers 정수/문자열 내림차순으로 배치하기

Level 1 연습문제 정수 내림차순으로 배치하기 문제 설명 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 - n은 1이상 8000000000 이하인 자연수입니다. 입출력 예시 print(solution(118372)) //873211 내 답안 func solution(_ n:Int64) -> Int64 { let arr = String(n).map{ String($0) } return Int64(String(arr.sorted().joined().reversed()))! } 모범답안 func solution(_ n:Int64) -> Int64 {..

[Swift 알고리즘] Programmers 자연수 뒤집어 배열로 만들기

문제 설명 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 - n은 10,000,000,000이하인 자연수입니다. 입출력 예시 print(solution(12345)) //[5,4,3,2,1] 내답안 func solution(_ n:Int64) -> [Int] { return String(n).reversed().map {Int(String($0))!} } 풀이 👉🏻 reversed() 사용법 처음으로 쓴 코드 func solution(_ n:Int64) -> [Int] { let s = String(n) var result = [Int]() for i in 0...s.count-1 { result.a..

[Swift 알고리즘] Programmers 나누어 떨어지는 숫자 배열

문제 설명 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 제한사항 - arr은 자연수를 담은 배열입니다. - 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. - divisor는 자연수입니다. - array는 길이 1 이상인 배열입니다. 입출력 예시 print(solution([5,9,7,10], 5)) //[5,10] print(solution([2,36,1,3], 1)) //[1,2,3,36] print(solution([3,2,6],10)) //[-1] 내답안 func solution..

[Swift 알고리즘] Programmers 최대공약수와 최소공배수

Level 1 최대공약수와 최소공배수 문제 설명 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 제한 사항 - 두 수는 1이상 1000000이하의 자연수입니다. 입출력 예시 print(solution(2,5)) //[1,10] print(solution(3,12)) //[3,12] print(solution(10,15)) //[5,30] 내 답안 func solution(_ n:Int, _ m:Int) -> [Int] { var result = [..

[Swift 알고리즘] Programmers 정수 제곱근 판별

Level 1 연습문제 정수 제곱근 판별 문제 설명 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한 사항 - n은 1이상, 50000000000000 이하인 양의 정수입니다. 입출력 예시 print(solution(121)) //144 print(solution(3)) //-1 내답안 func solution(_ n:Int64) -> Int64 { for i in 1...n { if i*i == n { return (i+1)*(i+1) } if n < i*i { return -1 } } return 0 } i 가 n까지 갈 일은..

[Swift 알고리즘] Programmers 행렬의 덧셈

문제 설명 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. 제한 조건 - 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다. 입출력 예시 print(solution([[1,2],[2,3]], [[3,4],[5,6]])) //[[4, 6], [7, 9]] 내 답안 func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] { var arr:[[Int]] = [] for i in 0...arr1.count-1 { arr.append([]) for j in 0...arr1[i].coun..

[Objective-C iOS] OpenCV detect rectangle 윤곽선 가져오기

내가 서치해본 결과, iOS에서 OpenCV를 사용하기엔 굉장히 열악하다. 샘플 코드 발견해도 대부분 4, 5년 전에 작성되어 작동조차 안되는 경우가 많다.. Swift로 작성할수가 없으니 Swift opencv 검색하면 당연히 안나온다. 그냥 기초 흑백변환 가이드 정도만 있다. OpenCV 를 활용하고 싶다면 무조건 Objective-C로 작성을 해주어야 하고, 옵씨로 검색을 해야한다. 그나마 파이썬이나 안드로이드에서 사용된 예시는 꽤 있는 듯 하여 작동 흐름이라도 알기 위해 다른 분야 검색 결과들을 참고 했다. 인자 갯수나 사용법은 조금씩 다르지만 사용되는 함수 명이나 흐름은 비슷하니까 다른 언어로 참고해도 좋을듯! 의도치않게 Objective-C 공부도 하게된.. ㅎㅎㅎ 그리하여 내가 직접 정리해본..

[Swift iOS] OpenCV 흑백변환

OpenCV 설치 터미널에서 $ pod init $ open -a Xcode Podfile target 'OpenCVtest' do use_frameworks! pod 'OpenCV', '~> 4.3' end $ arch -x86_64 pod install pod 설치 대신 opencv framework를 프로젝트에 그대로 넣어서 사용하는 방법도 있지만, 그렇게 하니까 framework 내부의 opencv 코드들을 뜯어보기가 힘들어서 cocoapod 으로 설치하는걸 추천..! Objective-C 파일 생성 Swift에서 Bridge-Header를 이용해 objective-c를 호출하고, objective-c에서 opencv를 호출하여 리턴해주는 구조. 따라서 아마도 Objective-C로만 함수를 만들..

728x90
반응형