오늘은 슬라이드를 이용한 시간 설정 후 시간이 다되면 특정한 소리를 내어 알려주는 미니 프로젝트를 진행하였다. 처음 배우는 타이머 구현 및 사운드 플레이와 같은 내용은 구글링을 통해 특정 키워드를 알아내고 알아낸 키워드를 바탕으로 재검색하여 사용할 수 있는 코드를 찾는 방법을 통해 접근하였다. 사운드플레이 사운드플레이를 사용하기 위에선 먼저 새로운 프레임워크를 선언해야한다. import AVFoundation 그 후 어떠한 작업 후 소리가 나기를 원하는 함수 내 하단의 코드를 입력하면 입력한 사운드가 나오게 된다. @IBAction func startButtonTapped(_ sender: UIButton) { AudioServicesPlayAlertSound(SystemSoundID(1322)) } 상..
문제 설명 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요. 단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1을 반환해 주세요. func sol..
문제 설명 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 먼저 내가 적은 답은 for 문을 사용하여 답을 구하고 싶었다. var sum: Int64 = 0 for i in a...b { sum += Int64(i) } return suma 에서 b까지 반복해서 설정한 후 i 변수에 담아 다 더하면 sum이 나와 문제가 해결 될 것으로 예측하였다. 하지만 테스트 결과, 56점으로 반은 맞게 되었으나, 반이나 오답이었다. 문제와 맞는 식을 제대로 혼자 작성한 것 같아 기분이 너무 좋았지만 결과가 따라오지 못해 내심 아쉬웠다. func solut..
문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. func solution(_ x:Int) -> Bool { let digits = String(x) var sum = 0 for i in digits { if let digit = Int(String(i)) { sum += digit } } if x % sum == 0 { return true } return false } 먼저 정수를 쪼개 합을 구하기 위해 digits 라는 상수를 선언하여 정수 x 를 String으로 ..
문제 설명 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. func solution(_ n:Int64) -> Int64 { return Int64(String(Array(String(n)).sorted { $0 > $1 }))! }String(n) 을 사용하여 입력 받은 정수를 문자열로 변환한 후 Array(String(n)) Array를 사용하여 바꾼 문자열을 배열로 전환한다. .sorted { $0 > $1 } 사용하여 배열을 내림 차순으로 변경한다. String 으로 정렬된 배열을 문자열로 변경한 후 Int64 사용하여 문자열을 정수로 다시 변환한 후 강..
문제 설명 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한 사항 n은 1이상, 50000000000000 이하인 양의 정수입니다. func solution(_ n:Int64) -> Int64 { let x = Int64(Double(n).squareRoot()) if n == x * x { return (x + 1) * (x + 1) } else { return -1 } return 0 }let x = Int64(Double(n).squareRoot()) 주어진 정수 n에 대해 제곱근을 구하고, 그 제곱근을 정수로 변환하여 x..