AIL( Algorithm I Learned)
-
#AIL_23.12.07 // Programmers_가운데 글자 가져오기AIL( Algorithm I Learned) 2023. 12. 7. 23:45
## AIL_ 가운데 글자 가져오기 ***문제 설명 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. ***제한사항 s는 길이가 1 이상, 100이하인 스트링입니다. ***입출력 예 s return "abcde" "c" "qwer" "we" ## solution.JavaScript 1. 문제의 접근 방식 주어진 문제는 문자열 `s`의 가운데 글자 또는 가운데 두 글자를 반환하는 것입니다. 문자열의 길이가 홀수이면 정확한 가운데 글자를, 짝수이면 가운데 두 글자를 반환해야 합니다. 2. 문제풀이 function solution(s) { var answer = ''; var length = s.length; if(length ..
-
#AIL_23.12.06 // Programmers_하노이의 탑AIL( Algorithm I Learned) 2023. 12. 6. 22:09
## AIL_ 하노이의 탑 ***문제 설명 하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대로 쌓여 있습니다. 게임의 목적은 다음 두 가지 조건을 만족시키면서, 한 기둥에 꽂힌 원판들을 그 순서 그대로 다른 기둥으로 옮겨서 다시 쌓는 것입니다. 1. 한 번에 하나의 원판만 옮길 수 있습니다. 2. 큰 원판이 작은 원판 위에 있어서는 안됩니다. 하노이 탑의 세 개의 기둥을 왼쪽 부터 1번, 2번, 3번이라고 하겠습니다. 1번에는 n개의 원판이 있고 이 n개의 원판을 3번 원판으로 최소 횟수로 옮기려고 합니다.1번 기둥에 있는 원판의 개수 n이 매개변수로..
-
#AIL_23.12.05 // Programmers_제일 작은 수 제거하기AIL( Algorithm I Learned) 2023. 12. 6. 01:59
## AIL_ 제일 작은 수 제거하기 *** 문제 설명 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. *** 제한 조건 arr은 길이 1 이상인 배열입니다.인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. *** 입출력 예 arr return [4,3,2,1] [4,3,2,] [10] [-1] ## solution.JavaScript 1. 문제의 접근 방식 주어진 코드는 배열에 최솟값을 찾아 제외한 새로운 배열을 생성하는 방식으로 문제..
-
#AIL_23.12.02 // Programmers_피보나치 수AIL( Algorithm I Learned) 2023. 12. 2. 22:00
## AIL_ 피보나치 수 *** 문제 설명 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. *** 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = 2 + 3 = 5 와 같이 이어집니다. 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. *** 제한 사항 n은 2 이상 100,000 이하인 자연수입니다. ***입출력 예 n return 3 2 5 5 *** 입출력..
-
#AIL_23.12.01 // Programmers_없는 숫자 더하기AIL( Algorithm I Learned) 2023. 12. 1. 10:38
## AIL_ 없는 숫자 더하기 ***문제 설명 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. ***제한사항 1 ≤ numbers의 길이 ≤ 9 0 ≤ numbers의 모든 원소 ≤ 9 numbers의 모든 원소는 서로 다릅니다. ***입출력 예 numbers result [1, 2, 3, 4, 6, 7, 8, 0] 14 [5, 8, 4, 0, 6, 7, 9] 6 ***입출력 예 설명 입출력 예 #1_5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다. 입출력 예 #2_1, 2, 3이 number..
-
#AIL_23.11.30 // Programmers_음양 더하기AIL( Algorithm I Learned) 2023. 11. 30. 09:59
## AIL_ 음양 더하기 ***문제 설명 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. ***제한사항 #1_absolutes의 길이는 1 이상 1,000 이하입니다.absolutes의 모든 수는 각각 1 이상 1,000 이하입니다. #2_signs의 길이는 absolutes의 길이와 같습니다.signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다. ***입출력 예 absolutes signs result [4, 7, 12] [true, fa..
-
#AIL_23.11.29 // Programmers_나누어 떨어지는 숫자 배열AIL( Algorithm I Learned) 2023. 11. 29. 10:22
## AIL_나누어 떨어지는 숫자 배열 ***문제 설명 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. ***제한사항 arr은 자연수를 담은 배열입니다.정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.divisor는 자연수입니다.array는 길이 1 이상인 배열입니다. ***입출력 예 arr divisor return [5, 9, 7, 10] 5 [5, 10] [2, 36, 1, 3] 1 [1, 2, 3, 36] [3, 2, 6] 10 [-1] ***입출력 예 설명 입출력 예#1_arr의 원..
-
#AIL_23.11.28 // Programmers_콜라츠 추측AIL( Algorithm I Learned) 2023. 11. 28. 09:48
## AIL_콜라츠 추측 ***문제 설명 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을..