Algorithm

· Algorithm
문제 및 조건 나의 풀이 처음에 이 문제를 접했을 땐, '엥? 그래서 뭘 구하라는거지?' 라는 생각이 들었다. 그리고나서 입출력 예제를 본 후에 '벽'과 '공백'을 나타내는 배열을 만들어야 한다는 것을 알게 되었다. 이 문제를 보자마자 이렇게 풀어야겠다는 생각이 들었다. 그 순서는 다음과 같다.(그 때 노트에 적은 내용 그대로) 1. arr1 2진수 변환(n자리) arr2 2진수 변환(n자리) 2. 2. arr1의 각 요소의 문자열 각각의 자리, arr2의 각 요소의 문자열 각각의 자리에 하나라도 1이 존재하면 새로운 배열의 i번째 자리에 "#" 넣기 3. arr1의 각 요소의 문자열 각각의 자리, arr2의 각 요소의 문자열 각각의 자리에 하나라도 1이 존재하지 않으면 새로운 배열의 i번째 자리에 " ..
· Algorithm
문제 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰 것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴합니다. 제한 조건 n은 1이상 80,000,000,000 이하인 자연수 입니다. 입출력 예 n return 118372 873211 나의 풀이 정수를 내림차순으로 배치해주기 위해 정수를 문자열로 바꾼 후 진행해주었다. 배열로 바꾼 후 그 값을 sort를 이용해 내림차순으로 정렬해주었다. 그 후 문자열인점을 이용해 reduce메서드를 사용해 그대로 붙여주었다. "873211" 이라는 값을 뽑아냈지만 문자열이기 때문에 마지막에 다시 숫자로 변환시켜 주었다. function solution(n) { var answer = ..
· Algorithm
문제 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한 사항 n은 1 이상 50,000,000,000,000 이하인 양의 정수입니다. 입출력 예 n return 121 144 3 -1 입출력 예 #1 : 121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다. 입출력 예 #2 : 3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다. 나의 풀이 일단, 첫 번째 풀이는 실패했다. 18개의 테스트 코드 중 한 개 빼고 다 맞았지만 무슨 이유에선지 하나의 테스트 코드에서 실패가 떴다. function solu..
· Algorithm
문제 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한조건 s의 길이는 1이상 5 이하입니다. s의 맨 앞에는 부호(+,-)가 올 수 있습니다. s는 부호와 숫자로만 이루어져 있습니다. s는 "0"으로 시작하지 않습니다. 입출력 예 예를 들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다. str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다. 나의 풀이 솔직히 풀이랄 것도 없다. function solution(s) { var answer = 0; answer = Number(s); return answer; }
· Algorithm
문제 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return하는 solution 함수를 만들어주세요. 예를 들어 N=123이면 1 + 2 + 3 = 6 을 return하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출력 예 N answer 123 6 987 24 입출력 예 #1 : 문제의 예시와 같습니다. 입출력 예 #2 : 9 + 8 + 7 = 24이므로 24를 return하면 됩니다. 나의 풀이 파라미터로 주어진 자연수 N을 각각의 자리로 분해하도록 '문자열'로 만들어 주었다. 그 후 반복문을 돌리는데 다시 숫자로 바꿔준 뒤 반복문을 돌며 모두 합쳐지도록 만들어 주었다. function solution(n){ var answer = 0; let str = Stri..
· Algorithm
문제 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5, 4, 3, 2, 1]을 리턴합니다. 제한조건 n은 10,000,000,000 이하인 자연수입니다. 입출력 예 n return 12345 [5, 4, 3, 2, 1] 나의 풀이 숫자를 반대 순서로 넣어야 하기 때문에 split을 사용해 배열에 넣어준 뒤에 forEach와 unshift를 써서 배열의 앞부분부터 넣어주었다. 그런데 type 이 Number인 경우에는 split이 사용되지 않아 파라미터로 받은 n을 문자열로 변환하여 이 과정을 진행했다. function solution(n) { var answer = []; n = String(n); let result = n.split("")..
· Algorithm
문제 함수 solution은 정수 x와 자연수 n을 입력받아, x부터 시작해서 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 제한 조건 x는 -10,000,000 이상 10,000,000 이하인 정수입니다. n은 1000 이하인 자연수입니다. 입출력 예 x n answer 2 5 [2, 4, 6, 8, 10] 4 3 [4, 8, 12] -4 2 [-4, -8] 나의 풀이 x부터 시작해서 x씩 증가한다는 말이 곧 곱셈이랑 같은 말이라고 생각했다. 따라서 곱셈을 n번 만큼 반복해주며 answer에 배열로 넣어주었다. function solution(x, n) { var answer = []; for(let i=1;i
· Algorithm
문제 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한사항 n은 0이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 #1 : 12의 약수는 1, 2, 3, 4, 6, 12 입니다. 이를 모두 더하면 28입니다. 입출력 예 #2 : 5의 약수는 1, 5 입니다. 이를 모두 더하면 6입니다. 나의 풀이 반복문을 1~n까지 반복해주는데 i가 n의 약수이면 answer에 더해주는 식으로 풀었다. function solution(n) { var answer = 0; for(let i=1;i
· Algorithm
문제 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 입출력 예 num return 3 "Odd" 4 "Even" 나의 풀이 우선 주어진 조건에 충실한 코드를 만들었다. 딱히 설명할 부분도 없는 것 같다. function solution(num) { var answer = ''; if(num%2===0){ answer = "Even"; } else { answer = "Odd"; } return answer; } 다른 문제들을 풀면서 삼항연산자를 연습해봐야겠다 싶어서 삼항 연산자를 이용해 풀어보았다. function solution(num) { var answer = ..
윤찬님
'Algorithm' 카테고리의 글 목록 (3 Page)