프로그래머스 level1 문제풀이 27

[Programmers] level 1) 문제 '두 개 뽑아서 더하기' 풀이 ***

🫠 Programmers (level 1) 👉🏻 문제 35번 (두 개 뽑아서 더하기) ✏️ 문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해 주세요. ✏️ 제한사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. ✏️ 입출력 예 numbers result [2,1,3,4,1] [2,3,4,5,6,7] [5,0,2,7] [2,5,7,9,12] function solution(numbers) { let result = [] for(let i = 0; i < numbers.length..

[Programmers] level 1) 문제 '문자열 내 마음대로 정렬하기' 풀이 ***

🫠 Programmers (level 1) 👉🏻 문제 34번 (문자열 내 마음대로 정렬하기) ✏️ 문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. ✏️ 제한 조건 strings는 길이 1 이상, 50 이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우,..

[Programmers] level 1) 문제 '크기가 작은 부분 문자열' 풀이 ***

🫠 Programmers (level 1) 👉🏻 문제 32번 (크기가 작은 부분 문자열) ✏️ 문제 설명 숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return 하는 함수 solution을 완성하세요. 예를 들어, t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개입니다. ✏️ 제한사항 1 ≤ p의 길이 ≤ 18 p의 길이 ≤ t의 길이 ≤ 10,000 t와 p는 숫자로만 이루어진 문자열이며, 0으로 시작하지 않습니다..

[Programmers] level 1) 문제 '직사각형 별찍기' 풀이

🫠 Programmers (level 1) 👉🏻 문제 30번 (직사각형 별 찍기) ✏️ 문제 설명 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해 보세요. ✏️ 제한 조건 n과 m은 각각 1000 이하인 자연수입니다. ✏️ 입출력 예 입력 결과 5, 3 ***** ***** ***** process.stdin.setEncoding('utf8'); process.stdin.on('data', data => { const n = data.split(" "); const a = Number(n[0]), b = Number(n[1]); // 작성 구간 // let star = '' for(let i = 0; i..

[Programmers] level 1) 문제 '최대공약수와 최소공배수' 풀이 ***

🫠 Programmers (level 1) 👉🏻 문제 29번 (최대공약수와 최소공배수) ✏️ 문제 설명 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. ✏️ 제한 사항 두 수는 1 이상 1000000 이하의 자연수입니다. ✏️ 입출력 예 n m return 3 12 [3, 12] 2 5 [1, 10] function solution(n, m) { let gcd_res let gcd = (n, m) => m === 0 ? gcd_res = n : g..

[Programmers] level 1) 문제 '행렬의 덧셈' 풀이

🫠 Programmers (level 1) 👉🏻 문제 28번 (행렬의 덧셈) ✏️ 문제 설명 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해 주세요. ✏️ 제한 조건 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다. ✏️ 입출력 예 arr1 arr2 return [[1,2], [2,3]] [[3,4], [5,6]] [[4,6], [7,9]] [[1], [2]] [[3], [4]] [[4], [6]] function solution(arr1, arr2) { let res = [] for(let i = 0; i < arr1.leng..

[Programmers] level 1) 문제 '3진법 뒤집기' 풀이 ***

🫠 Programmers (level 1) 👉🏻 문제 27번 (3진법 뒤집기) ✏️ 문제 설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해 주세요. ✏️ 제한사항 n은 1 이상 100,000,000 이하인 자연수입니다. ✏️ 입출력 예 n result 45 7 125 229 답을 도출하는 과정은 다음과 같습니다. n(10진법) n(3진법) 앞뒤 반전(3진법) 10진법으로 표현 45 1200 0021 7 function solution(n) { return parseInt((n.toString(3).split('').reverse().join('')), 3) } ✅ 10진법 --> 3진법으로..

[Programmers] level 1) 문제 '이상한 문자 만들기' 풀이

🫠 Programmers (level 1) 👉🏻 문제 25번 (이상한 문자 만들기) ✏️ 문제 설명 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. ✏️ 제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준) 별로 짝/홀수 인덱스를 판단해야 합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. ✏️ 입출력 예 s return "try hello world" "TrY HeLIO WoRID" function solution(s) { let arr = s.split(' ') let..

[Programmers] level 1) 문제 '문자열 내림차순으로 배치하기' 풀이

🫠 Programmers (level 1) 👉🏻 문제 24번 (문자열 내림차순으로 배치하기) ✏️ 문제 설명 문자열 s에 나타나는 문자를 큰 것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해 주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. ✏️ 제한 사항 str은 길이 1 이상인 문자열입니다. ✏️ 입출력 예 s return "Zbcdefg" "gfedcbZ" function solution(s) { return s.split('').sort().reverse().join('') } ✅ split()을 통해 문자열 --> 배열로! ✅ sort()를 통해 정렬하고, reverse()로 배열을 뒤집어 주었다. ✅ join()을 ..

[Programmers] level 1) 문제 '가운데 글자 가져오기' 풀이

🫠 Programmers (level 1) 👉🏻 문제 23번 (가운데 글자 가져오기) ✏️ 문제 설명 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두 글자를 반환하면 됩니다. ✏️ 제한사항 s는 길이가 1 이상, 100이하인 스트링입니다. ✏️ 입출력 예 s return "abcde" "c" "qwer" "we" function solution(s) { if(s.length % 2 !== 0) { return s[Math.floor(s.length / 2)] } else { return s.substr((s.length / 2) -1, 2) } } ✅ 짝수, 홀수 구분은 % 연산자를 사용했다. 만약 나머지가 있다면 홀수, 0이면 짝수! ✅ 홀수..