본문 바로가기

🐣 알고리즘64

[프로그래머스] Swift - 최대공약수와 최소공배수(LV.1) 문제 설명 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 제한 사항 두 수는 1 이상 1,000,000 이하의 자연수입니다. 입출력 예 n m return 3 12 [3, 12] 2 5 [1, 10] 풀이 [ 메모리: 16,793kb, 최대시간: 0.03ms ] func solution(_ n:Int, _ m:Int) -> [Int] { var divisor = 2 var gcd = 1 var (n, m) = (n, m) // 최대공약수 = 나누.. 2023. 5. 28.
[프로그래머스] Swift - 숫자 문자열과 영단어(LV.1) 문제 설명 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. 참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다. 숫자 영단어 0 "zero" 1 "one" 2 "two" 3 "three" 4 "four" 5 "fi.. 2023. 5. 27.
[프로그래머스] Swift - 소수찾기(Lv.1) 문제 설명 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 1,000,000이하의 자연수입니다. 입출력 예 n result 10 4 5 3 입출력 예 #1 1부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환 입출력 예 #2 1부터 5 사이의 소수는 [2,3,5] 3개가 존재하므로 3를 반환 풀이 [ 메모리: 16,793kb, 최대 시간: 1066.65.ms ] import Foundation func solution(_ n:Int) -> Int { var result = 0 for i in 2...n { if isPrimeN.. 2023. 5. 26.
[프로그래머스] Swift - 소수찾기(Lv.2) 문제 설명 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 입출력 예 numbers return "17" 3 "011" 2 풀이 (오답) func solution1(_ numbers:String) -> Int { let cNumbers = numbers.sorted.. 2023. 5. 25.