728x90 반응형 JavaScript186 [Programmers] level 1: 두 정수 사이의 합 by JavaScript 이번 문제를 풀어 보고 싶다면? 아래 링크를 클릭하세요! ☞ 문제 풀러 가기! 이번 문제는 빈출 문제인 n부터 m까지의 숫자 더하기이다. 유의점이라면 매개변수 a와 b의 대소관계가 일정하지 않다는 것이다. 이 때문에 먼저 a와 b의 대소관계부터 정리해놓고 문제를 풀어야 한다. 나의 경우 a가 b보다 크면 시작하는 수 num1에 b를 할당하고 num2에 a를 할당하는 식으로 정리를 했다. 이후에는 for 반복문을 활용하여 num1부터 num2까지의 숫자를 answer에 모두 더하거나 가우스 합 공식을 활용하여 num1부터 num2까지 모든 수를 더하는 식으로 풀었다. Solutions Solutions function solution(a, b) { let answer = 0; let num1; let nu.. 2022. 7. 9. [Programmers] level 1: 나누어 떨어지는 숫자 배열 by JavaScript 이번 문제를 풀어 보고 싶다면? 아래 링크를 클릭하세요! ☞ 문제 풀러 가기! 이번 문제는 filter() 메서드 혹은 for 반복문을 활용하면 쉽게 풀어낼 수 있는 문제이다. for 반복문으로 풀 경우 주어진 숫자 배열 arr를 for 반복문으로 탐색하며 탐색 중인 값을 divisor로 나누었을 때 나머지가 0이라면 정답 배열에 담아 반환하면 된다. filter() 메서드를 활용할 경우에도 마찬가지로 탐색하는 값 값들 가운데 divisor로 나누었을 때 나머지가 0인 답만을 골라내면 된다. 이때 0은 false로 취급한다는 점에서 착안하여 '!' 연산자를 활용해 false인 값(나머지가 0인 값)들을 true로 만들어 해당되는 값들만을 배열에 담아 반환할 수도 있다. Solutions Solutions.. 2022. 7. 9. [Programmers] level 1: 같은 숫자는 싫어 by JavaScript 이번 문제를 풀어 보고 싶다면? 아래 링크를 클릭하세요! ☞ 문제 풀러 가기! 이번 문제의 경우 기본적으로 for 반복문 및 배열의 특성을 활용하면 쉽게 풀 수 있는 문제이다. 유의할 점은 배열 내 중복된 값을 단순히 모두 제거하는 것이 아니라 특정 값이 연속된다면 연속되는 값의 첫 번째 값만을 정답 배열에 넣어야 한다는 점이다. 첫 번째 해답을 기준으로 설명하자면 주어진 배열 arr를 for 반복문으로 탐색하면서 정답 배열의 맨 마지막 값과 현재 탐색 중인 값이 다르다면 정답 배열에 push하고 아니라면 넘어간다. 이 작업을 마치면 정답 배열에는 주어진 배열에서 연속된 숫자를 제외한 숫자들만이 담기게 된다. filter() 메서드를 활용한 해답도 비슷한데 현재 탐색 중인 값 v와 v의 다음 값 a[i .. 2022. 7. 9. [Programmers] level 1: 가운데 글자 가져오기 by JavaScript 이번 문제에 대한 자세한 사항은 다음 링크를 참고하세요. 이번 문제는 '문자열[인덱스]'로써 특정 문자를 반환할 수 있다는 점을 활용하면 되는 문제이다. 우선 문자열 가운데 문자의 인덱스를 구하기 위에 문자열의 길이에다 2를 나눈 수를 올림 계산한다. 그 다음 substring() 메서드를 활용하여 주어진 문자열 s의 길이가 짝수라면 가운데에서 1만큼 더 큰 인덱스의 문자까지, 홀수라면 가운데 문자만을 반환한다. Solutions Solution 1. function solution(s) { /* My Solution */ const center = Math.ceil(s.length / 2); // return s.length % 2 === 0 ? s[center - 1] + s[center] : s[c.. 2022. 7. 9. [Programmers] level 1: 부족한 금액 계산하기 by JavaScript 이번 글은 아래 글들을 참고하여 작성하였습니다. 공룡수학님의 포스팅 수학자 이야기2-등차수열 합공식의 가우스 1부터 100까지의 합을 쉽게 계산한 가우스 중학교 수학 시간에 선생님께서 가우스 이야기를 해주신 적이 있다. 초등학생 때 1부터 100까지의 합을 쉽고 빠르게 계산했었노라고.. 그 이야기는 내게 tyrannohaha.com 코딩정비소님의 포스팅 [알고리즘] 가우스의 덧셈 공식 목표 가우스 덧셈에 대해 알아보자 가우스 덧셈을 이용한 문제 풀이 가우스 덧셈 등장 배경 천재적인 수학자 독일의 가우스는 어려서부터 수학에 재능을 보였다. 가우스가 초등학교 3학년 때 수 workshop-code.tistory.com 이번 문제에 대한 자세한 사항은 다음 링크를 참고하세요. 내 해답의 경우 for문을 활용한.. 2022. 7. 9. [Programmers] level 1: 나머지가 1이 되는 수 찾기 by JavaScript 이번 문제에 대한 자세한 사항은 다음 링크를 참고하세요. 주어진 수 n을 나누어 나머지가 1이 되는 수 중 가장 작은 수를 찾으면 되는 문제이다. for/while 반복문 및 %(나머지를 구하는 연산자)를 통해 쉽게 해결할 수 있다. Solutions Solution 1. function solution(n) { for (let i = 1; i 2022. 7. 9. [Programmers] level 1: 최소직사각형 by JavaScript 이번 문제에 대한 자세한 사항은 다음 링크를 참조하세요. 이번 문제는 주어진 가로, 세로 값이 담긴 배열을 활용하여 모든 크기의 명함을 담을 수 있는 지갑의 크기를 구하는 것이다. 주의할 점은 명함은 90도 회전해서도 보관할 수 있기 때문에 그 점도 고려해야 한다. 즉 초기 입력 받은 배열에서 지정된 가로, 세로 값의 위치에 구애 받지 않고 지갑 크기를 조합할 수 있다는 것이다. 이를 구현하기 위해 우선 배열을 정렬한 다음 임의의 가로 및 세로 값들을 서로 비교한 다음 최댓값끼리 곱하여 반환하면 정답이다. Solutions Solution 1. function solution(sizes) { let width = 0; let height = 0; for (let size of sizes) { const .. 2022. 7. 8. [Programmers] level 1: 2016년 by JavaScript 이번 글은 다음 글들을 참조하여 작성하였습니다. goblin820님의 포스팅 코딩테스트 | (JavaScript) 프로그래머스 : 2016년 날짜 응용 문제 velog.io Millie님의 포스팅 [프로그래머스 Level 1] 2016년 (자바스크립트) Description 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 jaypedia.tistory.com 이번 문제에 대한 자세한 사항은 다음 링크를 참조하세요. 이번 문제의 경우 Date() 객체를 활용하여 간단히 풀었다. 아무리 생각해도 계산 식은 떠올리지 못했는데 여러 블로그의 포스팅.. 2022. 7. 8. [Programmers] level 1: 두 개 뽑아서 더하기 by JavaScript 이번 문제에 대한 자세한 사항은 다음 링크를 참조하세요. 프로그래머스 level 1에 자주 출제되는 유형 중의 하나이다. 주어진 숫자 배열을 해당 배열의 길이만큼 for문으로 탐색하면서 i는 1씩 증가하는데, 이렇게 1씩 증가하는 i에다 나머지 숫자들을 뜻하는 j를 더하여 정답 배열에 j가 없다면 push하는 식으로 풀면 된다. 입력 받는 숫자 배열 및 정답 배열을 오름차순으로 정렬해줘야 한다는 점에 유의하자. 그리고 중복을 제거하는 데에는 if문을 사용하지 않고 Set()을 활용해도 된다. Solutions Solution 1. function solution(numbers) { /* My Solution */ const answer = []; numbers.sort((a, b) => a - b); f.. 2022. 7. 7. 이전 1 ··· 8 9 10 11 12 13 14 ··· 21 다음 728x90 반응형