[level 1] x만큼 간격이 있는 n개의 숫자
·
알고리즘/Swift
문제 풀이 코드 func solution(_ x:Int, _ n:Int) -> [Int] { var listArray: [Int] = [x]; for _ in 0.. [Int64] { return Array(1...n).map { Int64($0 * x) } } 고차함수를 생각하자!! map 이라는 메서드가 있다! swift는 이제 막 공부를 다시 시작한거라 문법을 좀 익힐 필요가 있을 것 같다
[level 1] 직사각형 별찍기
·
알고리즘/Swift
문제 풀이 코드 import Foundation let n = readLine()!.components(separatedBy: [" "]).map { Int($0)! } let (a, b) = (n[0], n[1]) for _ in 0..
[level 2] N개의 최소공배수
·
알고리즘/JavaScript
문제 풀이 코드 const calcuGCD = (n, m) => { return n % m == 0 ? m : calcuGCD(m, n % m); }; function solution(arr) { let gcd = calcuGCD(arr[0], arr[1]); let lcm = (arr[0] * arr[1]) / gcd; for (let i = 2; i < arr.length; i++) { gcd = calcuGCD(lcm, arr[i]); lcm = (lcm * arr[i]) / gcd; } return lcm; } 풀이 과정 여러 수의 최소공배수를 구하는 방법은 다음과 같다. 1. A 와 B 의 최소공배수를 구한다. 2. 1의 최소공배수와 C의 최소공배수를 구한다. 3. 2의 최소공배수와 D의 최소공..
[level 2] 최솟값 만들기
·
알고리즘/JavaScript
문제 풀이 코드 function solution(A,B){ let a = A.sort((a,b) => a - b); let b = B.sort((a,b) => a - b).reverse(); let sum = 0; for (let i = 0; i < a.length; i++) { sum = sum + (a[i] * b[i]); } return sum; } 풀이 과정 우선, A 배열과 B 배열을 모두 정렬하되, A배열은 오름차순, B 배열은 내림차순으로 정렬 하였다, 이렇게 한 이유는 문제에서 각 요소의 곱을 모두 더하여 최솟값을 만드는 문제였다, 따라서 하나의 배열내의 최대값과, 또 다른 배열내의 최소값을 곱해 모두 더하면 그게 최소값이 될것이다. 이렇게 정렬한 후, for 루프를 통해 각 요소의 곱을 ..
[level 2] JadenCase 문자열 만들기
·
알고리즘/JavaScript
문제 풀이 코드 function solution(s) { return s.split(" ").map(item => { if(item !== '') return item[0].toUpperCase() + item.substr(1).toLowerCase() }).join(" ") } 풀이 과정 문자열을 공백 기준으로 우선 나누고, map 메서드를 통해 해당 인덱스가 공백이 아닌경우 ( ' ' 으로만 나누어진 경우가 이에 해당 ) 해당 인덱스의 요소의 첫 문자만 대문자로 치환하고, 이후의 문자들을 붙여 반환하였다, 마지막으로 join 을 통해 나누어진 배열을 다시 하나의 문자열로 구성하였다. 처음 문제를 풀때 오류가 발생했는데 원인이 바로 공백으로만 나누어진 경우였다. 따라서 if 구절을 통해 공백이 아닌 경..