목록프로그래머스 (9)
MUKER_DEV with iOS

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이를 직관적으로 이해할 수 있도록 고차함수를 사용하지 않은 풀이와 고차함수를 사용한 풀이로 나누어 공부하고 있습니다. 고차함수를 사용하지 않은 풀이 import Foundation func solution(_ s:String) -> Bool { var pCount = 0 var yCount = 0 for i in s.lowercased() { if i == "p" { pCount += 1 } if i == "y" { yCount += 1 } } if pCount == yCount { return true..
제 문제 풀이는 최선의 풀이가 아닐 수 있습니다. 문제를 푸는 방법은 다양합니다! 문제설명 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 제한 조건 str은 길이 1 이상인 문자열입니다. 입출력 예 s return "Zbcdefg" "gfedcbZ" 문제 분석 1. 문자열을 내림, 오름 차순으로 정렬할 수 있다. Solution.swift func solution(_ s:String) -> String { // sorted는 문자열, 배열을 정렬해주는 고차함수이다. // 오름차순으로 정렬하고 싶으면 $0 < $1로 뒤로 갈수록 커지게 하면 된다...
제 문제 풀이는 최선의 풀이가 아닐 수 있습니다. 문제를 푸는 방법은 다양합니다! 문제설명 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 1000000이하의 자연수입니다. 입출력 예 n result 10 4 5 3 문제 분석 1. Solution.swift func solution(_ n:Int) -> Int { var isPrimeArray = Array(repeating: true, count: n + 1) var primeCount = 0 isPrimeArray[0] = false isPrimeArray[1] = false for i in..
제 문제 풀이는 최선의 풀이가 아닐 수 있습니다. 문제를 푸는 방법은 다양합니다! 문제설명 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한 조건 N의 범위 : 100,000,000 이하의 자연수 입출력 예 N answer 123 6 987 24 문제 분석 1. map을 이용해 자연수값을 문자열로 convert 할 수 있다. 2. reduce()를 이용해 각 자릿수의 합을 구할 수 있다. Solution.swift import Foundation func solution(_ n:Int) -> Int { return String(n).map { Int(Strin..
제 문제 풀이는 최선의 풀이가 아닐 수 있습니다. 문제를 푸는 방법은 다양합니다! 문제설명 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 n return 12345 [5,4,3,2,1] 문제 분석 1. 고차함수 map을 이용하여 시퀀스를 변환시킵니다. 2. reversed() 함수를 이용해 컨테이너의 순서를 뒤집습니다. Solution.swift func solution(_ n:Int64) -> [Int] { return String(n).map { Int(String($0))! }.reversed() } Progremmers Best S..
제 문제 풀이는 최선의 풀이가 아닐 수 있습니다. 문제를 푸는 방법은 다양합니다! 문제설명 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이상 8000000000 이하인 자연수입니다. 입출력 예 n return 118372 873211 문제 분석 1. sorted() 함수를 이용하여 배열 및 문자열을 정렬할 수 있습니다. 2. 정렬된 문자열을 정수로 리턴해 문제를 풉니다. Solution.swift func solution(_ n:Int64) -> Int64 { // 입력된 정수를 문자열로 변환시켜 변수에 담아줍니다. var str = St..
제 문제 풀이는 최선의 풀이가 아닐 수 있습니다. 문제를 푸는 방법은 다양합니다! 문제설명 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한 조건 n은 1이상, 50000000000000 이하인 양의 정수입니다. 입출력 예 n return 121 144 3 -1 문제 분석 1. 제곱근을 판별하기 위해 sqrt() 함수를 사용. 2. 함수를 사용하기 위해 Foundation을 import 해야 함. 3. 양의 정수를 가지는 값이라면 + 1을 하여 제곱하고, 소수점을 가지는 값이 나온다면 -1을 리턴함. Solution.swift ..
제 문제 풀이는 최선의 풀이가 아닐 수 있습니다. 문제를 푸는 방법은 다양합니다! 문제설명 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 입출력 예 num return 3 "Odd" 4 "Even" 문제 분석 1. 정말 쉬운문제 입니다. 삼항연산자를 이용하면 한줄에 끝낼 수 있습니다. 2. % 를 이용해 나머지를 구해서 0이 나오면 짝수, 아니라면 홀수 입니다. Solution.swift func solution(_ num:Int) -> String { return num % 2 == 0 ? "Even" : "Odd" }
제 문제 풀이는 최선의 풀이가 아닐 수 있습니다. 문제를 푸는 방법은 다양합니다! 문제설명 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 제한 조건 두 수는 1이상 1000000이하의 자연수입니다. 입출력 예 n m return 3 12 [3,12] 2 5 [1,10] 문제 분석 1. 최대공약수와 최소공약수를 구하는 알고리즘을 알아야 함. 2. 최대공약수는 유클리드 호제법을 이용해 구했다. 3. 최소배수는 최대공약수를 이용해 구했다. Soluti..