프로그래머스 코딩테스트
문제 1. 2차원으로 만들기
정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요.
num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다.
설명: for에서 증가폭은 n만큼으로 행한다. 이후 answer에 .push할 때는 slice를 사용해 배열을 조각내준다. 이때 (i, i+n)이라 하면 보기엔 2개만 들어가는 것 같아도 n개만큼 들어가는 것이니 걱정말도록.
문제 2. k의 개수
1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요.
설명: 일단 i부터 j까지 모든 수를 배열로 만들어 Arr에 넣어버렸다. 이후 .filter()를 사용하여 k가 일치하는 것을 찾아 그 길이를 세었다.
문제 3. A로 B만들기
문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요.
설명: 일단… 나는 조금 무식하게 before과 after를 배열로 만든 다음에 sort로 정렬했다. 그런 뒤 두 배열이 같지 않을 때 pandan에 1을 주었다.
문제 4 - 팩토리얼
i팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요.
설명: 간단하다. answer이 주어진 n보다 작으면 계속해서 돌린다. 팩토리얼을 곱하는 수가 1씩 증가하니 i를 증가시켜 계속 곱해준다. i는 n보다 큰 수를 곱했을 때의 값이므로 -1을 해주어야 된다.
문제 5 - 숨어있는 숫자의 덧셈(2)
문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
설명: 왠지 문자열에서 숫자만 골라내는 메서드가 있을 것 같아 찾아보니 정규식이 존재했다. .match()과 정규식을 통해 숫자만 골라낼 수 있다. 이를 배열로 만들어 해당하는 숫자를 answer에 더하였다.