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

[Programmers] level 1) 문제 '자연수 뒤집어 배열로 만들기' 풀이

🫠 Programmers (level 1) 👉🏻 문제 9번 (자연수 뒤집어 배열로 만들기) ✏️ 문제 설명 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를 들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. ✏️ 제한 조건 n은 10,000,000,000이하인 자연수입니다. ✏️ 입출력 예 n return 12345 [5,4,3,2,1] function solution(n) { return (n+'').split('').map((item) => Number(item)).reverse() } ✅ 자연수 n을 문자열로 만든 후, split('')으로 배열 분리하였다. ex) 12345 --> [1,2,3,4,5] ✅ 문자열로 변경한 n을 Number()로 다시 변경..

[Programmers] level 1) 문제 '문자열 내 p와 y의 개수' 풀이

🫠 Programmers (level 1) 👉🏻 문제 8번 (문자열 내 p와 y의 개수) ✏️ 문제 설명 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 "pPoooyY"면 true를 return 하고 "Pyy"라면 false를 return 합니다. ✏️ 제한 조건 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있습니다. ✏️ 입출력 예 s answer "pPoooyY" true "Pyy" false..

[Programmers] level 1) 문제 '정수 제곱근 판별' 풀이

🫠 Programmers (level 1) 👉🏻 문제 7번 (정수 제곱근 판별) ✏️ 문제 설명 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. ✏️ 제한 사항 n은 1 이상, 50000000000000 이하인 양의 정수입니다. ✏️ 입출력 예 n return 121 144 3 -1 function solution(n) { return Math.sqrt(n) % 1 === 0 ? Math.pow((Math.sqrt(n) + 1),2) : -1 } ✅ Math.sqrt(n) 👉🏻 n의 제곱근이 있는지 계산 ✅ Math.pow(n, 2..

[Programmers] level 1) 문제 '나머지가 1이 되는 수 찾기' 풀이

🫠 Programmers (level 1) 👉🏻 문제 5번 (나머지가 1이 되는 수 찾기) ✏️ 문제 설명 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. ✏️ 제한사항 3 ≤ n ≤ 1,000,000 ✏️ 입출력 예 n result 10 3 12 11 function solution(n) { return Math.min(...new Array(n) .fill(1).map((item, index) => item + index) .filter((item) => n % item === 1)) } ✅ 간단하게 while문을 이용해서 풀 수 있지만, 배열의 속성..

[Programmers] level 1) 문제 '자릿수 더하기' 풀이

🫠 Programmers (level 1) 👉🏻 문제 4번 (자릿수 더하기) ✏️ 문제 설명 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를 들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. ✏️ 제한사항 N의 범위 : 100,000,000 이하의 자연수 ✏️ 입출력 예 N answer 123 6 987 24 function solution(n){ return (n+'').split('').map((item) => Number(item)).reduce((acc, item) => acc + item, 0) } ✅ 매개변수로 받는 n이 number 타입이기 때문에 n+''를 통해 문자열로 만들어 주었다. ✅ 문자열..

[Programmers] level 1) 문제 '약수의 합' 풀이

🫠 Programmers (level 1) 👉🏻 문제 3번 (약수의 합) ✏️ 문제 설명 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해 주세요. ✏️ 제한 사항 n은 0 이상 3000 이하인 정수입니다. ✏️ 입출력 예 n return 12 28 5 6 function solution(n) { let arr = new Array(n).fill(1).map((item, index) => item + index) return arr.filter((item) => n % item === 0).reduce((acc, item) => acc + item, 0) } ✅ 매개변수로 받는 n만큼 배열을 만들고(1 ~ n까지), 배열의 filter로 약수인 것만 반환하였다. ..

[Programmers] level 1) 문제 '짝수와 홀수' 풀이

🫠 Programmers (level 1) 👉🏻 문제 1번 (짝수와 홀수) ✏️ 문제 설명 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해 주세요. ✏️ 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. function solution(num) { return num % 2 === 0 || num === 0 ? 'Even' : 'Odd' } ✅ 간단하게 2로 나눌 경우, 나머지가 0이면 짝수 아니면 홀수로 나타내도록 구현하였다. 💡 확인할 점 다른 사람들의 풀이를 보니 아래와 같이 풀이할 수 있다. 'return (num % 2 ? 'Odd' : 'Even') 결괏값 자체가 0으로 나오는 경우, false를 이용해서 Ev..