적당한 고통은 희열이다

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

반응형

분류 전체보기 568

[Swift 알고리즘] Programmers 로또의 최고 순위와 최저 순위

Level 1 2021 Dev-Matching 로또의 최고 순위와 최저 순위 당첨 가능한 최고 순위와 최저 순위를 차례대로 배열에 담아서 return 하도록 입출력 예시 print(solution([44,1,0,0,31,25],[31,10,45,1,6,19])) //[3,5] print(solution([0,0,0,0,0,0],[38,19,20,40,15,25])) //[1,6] print(solution([45, 4, 35, 20, 3, 9],[20, 9, 3, 45, 4, 35])) //[1,1] 모범 답안 import Foundation func solution(_ lottos:[Int], _ win_nums:[Int]) -> [Int] { let zeroCount = lottos.filter { ..

[Swift 알고리즘] Programmers 자릿수 더하기

Level 1 연습문제 자릿수 더하기 문제 설명 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한 사항 - N의 범위 : 100,000,000 이하의 자연수 입출력 예시 print(solution(987)) //24 내답안 import Foundation func solution(_ n:Int) -> Int { var answer:Int = 0 let arr = String(n).map { Int(String($0))! } for i in 0...arr.count-1 { answer += arr[i] } return answer } 굳이 map으로 배열을 만들..

[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..

728x90
반응형