728x90 반응형 전체 글47 [Level 0] # 점의 위치 구하기 - 나의 풀이(조건문) 문제를 보자마자 생각난 if-else 조건문을 이용해서 풀었는데 풀이과정은 떠올리기 쉽지만 코드를 너무 길고 복잡하게 푼것 같아서 아쉽다. function solution(dot) { if(dot[0]>0 && dot[1]>0) { return 1; } else if(dot[0]0) { return 2; } else if(dot[0] 0 ? 1 : 4 : dot[1] > 0 ? 2 : 3; } 삼항연산자도 생각하지 못했지만 구조분해할당은 더욱 생각하지 못했다.. 코드는 어렵지 않지만 떠올리는게 어려웠던것 같고 구조분해 할당을 이용하여 엄청 깔끔하게 푼것을 보고 더욱 열심히 해야겠다고 느꼈다. function solution(dot) { const [num,num2] = dot; c.. 2024. 2. 9. [Level 0] # 양꼬치 아주간단한 계산문제이고 몫을 버림하여 구하기만 하면 된다. - 나의 풀이 문제를 보자마자 몫을 버림해서 구해야 하고 Math.floor이 떠올랐다. 그리고 n/10이 0보다 클때와 아닐때를 나누어서 조건문을 사용하여 풀었는데 어차피 Math.floor을 사용하기 때문에 n/10이 0보다 작을경우 값이 0이 나오기 때문에 굳이 조건문을 사용하지 않고 풀어도 충분하였다. function solution(n, k) { let solution = 12000*n + 2000*k; let answer=0; if(n/10>0) { answer = solution - Math.floor(n/10)*2000 } else { answer = solution } return answer; } 처음에는 이렇게 복잡하게 풀었지.. 2024. 2. 9. [Level 0] # 최대값 만들기1 배열의 원소들을 곱해서 만들 수 있는 가장 큰 수를 찾는 문제이고 배열에서 가장 큰 원소와 두번째로 큰 원소를 찾아내서 곱하면 해결된다. - 나의 풀이(sort_오름차순) 배열에서 가장 큰 수를 찾는것은 쉽다. 반복문을 사용해서 다음항과 비교하여 가장 큰 수를 찾을 수 있다. 그리고 두번째로 큰 수를 찾아야 하는데 아무리 생각해도 답이 나오지 않았다. 그래서 검색을 해보니 sort 함수를 사용하면 문제를 쉽게 해결할 수 있었다. arr.sort(); sort 함수는 다음과 같이 사용할 수 있으며 배열을 정렬하는 대표적인 함수이다. 하지만 오름차순으로 배열을 정렬하고 배열의 원소에 음수가 있으면 원하는 대로 정렬이 되지 않기 때문에 다음과 같이 사용하여야 한다 sort함수에서 오름차순으로 배열을 정렬하는 .. 2024. 2. 9. [Level 0] # 짝수 홀수 개수 배열에서 짝수와 홀수의 갯수를 구해서 배열로 만드는 문제이다. 여러개가 섞인 문제같지만 쉽게 해결할 수 있다. - 나의 풀이(for 반복문) 처음에는 filter를 사용하려고 했지만 방법이 떠오르지 않아 반복문을 사용하였다. 코드를 정확하게 입력했는데 정답이 아니라고 나와 계속 해맸었는데 자세히 살펴보니 마지막 return값을 [a,b]로 계속해서 출력을 하고 있었다... 문제에서 짝수와 홀수 순으로 출력하라고 하였으므로 다시 순서를 바꾸니 정답이 나왔다. function solution(num_list) { let a = 0; let b = 0; for(let i=0;i n%2 === 0).length return [even, num_list.length - even]; } 또한 반복문을 사용할때 in.. 2024. 2. 9. [Level 0] # 배열 두배 단순히 배열의 원소를 두배로 곱하여 새로운 배열을 만들면 되는 문제이다. 배열함수를 사용하여 쉽게 해결할 수 있다. - 나의 풀이 배열에 특정한 동작을 하여 새로운 배열을 만들어야 하므로 map함수를 사용해보았다. 화살표 함수를 이용하여 배열의 원소를 2배로 하여 새로운 배열을 만들었다. function solution(numbers) { let solution = []; solution = numbers.map(numbers => numbers*2); return solution; } - 다른 풀이 for 반복문을 이용하여 정석적으로 풀 수 있다. 배열의 원소마다 각각 2씩 곱하도록 만들면 된다. function solution(numbers) { var answer = []; for(var i=0; .. 2024. 2. 9. [Level 0] # 피자 나눠먹기 1 피자를 7조각으로 나누어주고 n명의 사람이 한조각 이상의 피자를 먹기위해 피자의 판수를 구하면 되는 문제이다. - 나의 풀이 이유는 모르겠지만 피자나눠먹기 3을 먼저 풀었기 때문에 이번문제는 간단하게 해결할 수 있었다ㅏ. 피자판수를 p라고 하면 p * 7 > n이 성립해야 하고 정리해서 p > n / 7 이 성립해야한다. 한마디로 n / 7 을 올림한값이 p가 되면 되므로 올림함수인 Math.ceil을 사용하면 간단히 해결할 수 있다. Math.ceil에서 M은 대문자로 반드시 써야한다. function solution(n) { return Math.ceil(n/7); } - 다른 풀이 나머지 풀이들도 있었지만 위의 풀이보다 복잡하거나 비효율 적이여서 따로 기술하지 않겠다. 6점이나 주는것을 보면 생각보.. 2024. 2. 9. [Level 0] # 편지 편지의 길이를 구하는 문제이고 문자열마다 2cm의 공간을 차지한다. 공백과 특수문자 모두 문자열로 포함한다는 점을 주의해야한다. - 나의 풀이 처음에 문제를 보고 문자열이 나온순간 배열로 바꾸어 .length를 사용해야겠다는 생각이 들었다. split 함수를 사용해서 문자열을 배열로 바꿔주고 편지지의 길이를 구해야 하므로 배열의 길이에 *2를 하여 해결해주었다. function solution(message) { let answer = 0; let arr = message.split('') answer = arr.length * 2; return answer; } - 다른 풀이 자바스크립트에서는 문자열마다 인덱스가 부여되어 있기때문에 굳이 배열로 바꾸지 않고도 .length를 사용하면 공백과 특수문자를 .. 2024. 2. 9. [Level 0] # 배열자르기 - 나의 풀이 for 반복문을 이용하여 문제를 해결하였다. 처음에는 문제를 num2 번째 인덱스를 num1에서 num2만큼 이동한것을 num2인덱스라고 착각하여서 많이 헷갈렸었다. 하지만 문제는 num1번째부터 num2번째 인덱스까지만 구하면 되는 쉬운문제였고 범위를 지정하고 push함수를 사용하여 정답을 구할 수 있었다. function solution(numbers, num1, num2) { let answer = []; for (let i = num1; i < num2+1; i++) { answer.push(numbers[i]) } return answer; } - 다른 풀이 slice를 사용한다면 아주 간단하게 해결할 수 있다. slice(a,b) 를 이용하면 배열을 a번째에서 b번째 까지 잘라준.. 2024. 2. 9. [Level 0] # 피자 나눠먹기 3 피자를 slice로 나누고 n명이 먹는다고 했을때 최소 한조각 이상 피자를 먹어야 하므로 필요한 판수의 피자를 구하는 문제이다. 수학식으로 피자 판수를 p, 조각수를 slice, 사람수를 n이라고 하면 slice * p >=n 이 되어야 한다. 이항하면 p >= n/slice 가 되므로 n/slice를 구하여 p가 더 크면 되므로 p의 값은 n/slice의 값을 올림한것이라고 보면된다. 따라서 올림함수인 math.ceil을 사용하여 문제를 해결하였다. - 나의 풀이 조금 길게 적긴 했지만 한줄로 간소화 할 수 있고 이부분에 대해서는 연습이 필요하다. function solution(slice, n) { let result = 0; result = Math.ceil(n/slice) return result.. 2024. 2. 9. 이전 1 2 3 4 5 6 다음 728x90 반응형