문제 설명 정수가 있을 때, 짝수라면 반으로 나누고, 홀수라면 1을 뺀 뒤 반으로 나누면, 마지막엔 1이 됩니다. 예를 들어 10이 있다면 다음과 같은 과정으로 1이 됩니다. 10 / 2 = 5 (5 - 1) / 2 = 2 2 / 2 = 1 위와 같이 3번의 나누기 연산으로 1이 되었습니다. 정수들이 담긴 리스트 num_list가 주어질 때, num_list의 모든 원소를 1로 만들기 위해서 필요한 나누기 연산의 횟수를 return하도록 solution 함수를 완성해주세요. 제한 조건 3 ≤ num_list의 길이 ≤ 15 1 ≤ num_list의 원소 ≤ 30 내 답안 import Foundation func solution(_ num_list:[Int]) -> Int { var count = 0 va..
문제 설명 정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [i, j] 꼴입니다. 각 query마다 순서대로 arr[i]의 값과 arr[j]의 값을 서로 바꿉니다. 위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요. 제한 조건 제한사항 1 ≤ arr의 길이 ≤ 1,000 0 ≤ arr의 원소 ≤ 1,000,000 1 ≤ queries의 길이 ≤ 1,000 0 ≤ i [Int] { return queries.reduce(into: arr) { result, q in result.swapAt(q[0], q[1]) } } 알게 된 것 reduce(into:) 정리 https..
문제 설명 문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요. 제한 조건 my_string와 overwrite_string은 숫자와 알파벳으로 이루어져 있습니다. 1 ≤ overwrite_string의 길이 ≤ my_string의 길이 ≤ 1,000 0 ≤ s ≤ my_string의 길이 - overwrite_string의 길이 내 답안 func solution(_ my_string:String, _ overwrite_string:String, _ s:Int) -> String {..