적당한 고통은 희열이다

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

반응형

Algorithm/Programmers 63

[Swift 알고리즘] Programmers 이상한 문자 만들기

문제 설명 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 입출력 예시 print(solution("try hello world")) //TrY HeLlO WoRlD 처음에 아무리 해도 31점이 나오고 통과가 안되는것이었다. 도대체 왜?? 질문하기를 살펴보니 공백이 무조건 하나만 있는게 아니라서.. 실패가 뜬 거라고 한다. 예를 들어 "tr..

[Swift 알고리즘] Programmers 수박수박수박수?

문제 설명 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한 조건 n은 길이 10,000이하인 자연수입니다. 입출력 예시 print(solution(3)) //수박수 func solution(_ n:Int) -> String { var arr = [String]() for i in 1...n { (i%2 == 0) ? arr.append("박") : arr.append("수") } return arr.joined() } func solution(_ n:Int) -> String { var str = "" for i in 1...n { str += ..

[Swift 알고리즘] Programmers 약수의 합

문제 설명 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예시 print(solution(12)) //28 print(solution(5)) //6 내 답안 func solution(_ n:Int) -> Int { if n == 0 { return 0 } let arr = Array(1...n).filter{n % $0 == 0} var result = 0 for i in arr { result += i } return result } 모범답안 func solution(_ n:Int) -> Int { return n != 0 ? (1...n).filter{n % $0 == 0}.reduce(0,+..

[Swift 알고리즘] Programmers 소수 찾기

Level 1 연습문제 소수 찾기 문제 설명 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.(1은 소수가 아닙니다.) 제한 조건 - n은 2이상 1000000이하의 자연수입니다. 입출력 예 print(solution(10)) //4 print(solution(5)) //3 1차 시도 - 43.8점 func solution(_ n:Int) -> Int { var result = 0 for i in 2...n { if (2...i).filter{ i%$0 == 0 }.count == 1 { result += 1 } } return result } 정말 원시적인 방법으로 그냥 단순하게 2부터 n까지 ..

[Swift 알고리즘] Programmers 약수의 합

Level 1 연습문제 약수의 합 문제 설명 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예시 print(solution(12)) //28 print(solution(5)) //6 내 답안 func solution(_ n:Int) -> Int { if n == 0 { return 0 } let arr = Array(1...n).filter{n % $0 == 0} var result = 0 for i in arr { result += i } return result } 모범답안 func solution(_ n:Int) -> Int { return n != 0 ? (1...n).filter{n % ..

[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 알고리즘] 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..

728x90
반응형