코딩테스트

문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/42577?language=javascript# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 해당 문제는 해시를 이용한 풀이가 정론이다. 각 문자별 해시테이블을 만들어준 뒤 phone_book의 요소들을 순회하며 문자를 slice 해가며 해시테이블에 존재하는지 확인한다. 이게 정론이지만 해당 문제는 sort 정렬을 이용해 쉽게 해결이 가능하다. sort()를 이용하면 가장 첫자리 부터 끝자리 까지의 수와 전체 크기를 비교해 ..
문제 설명 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한 사항 3 ≤ n ≤ 1,000,000 문제 풀이 방법 단순 반복을 통한 완전탐색 알고리즘으로 생각되는 문제이다. for문을 이용해 2부터 시작하여 n미만의 수 까지 반복하여 나누었을 때 나머지가 1이되는 수를 찾자 내가 작성한 코드 function solution(n) { // 낮은 수 부터 시작하는 반복문을 생각하고 코드를 작성해 보자(단순반복) for(let i=2; i
문제 설명 정수 n이 매개변수로 주어집니다. 다음 그림과 같이 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행한 후, 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return 하도록 solution 함수를 완성해주세요. 제한 사항 n은 1 이상 1,000 이하입니다. 문제 풀이 방법 삼각형의 모습을 인지하고 다른 사람이 푼 코드를 보고 문제를 다시 풀었다. x, y 좌표를 구분하여 생각해서 가장 밖에 있는 칸부터 채웠다. 밖의 칸을 다 채웠으면 n -= 3 하여 다시 루프를 진행할 수 있게 했다. 코드 function solution(n) { const answer = new Array(n).fill().map((_, i) => new Array..
문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. 문제 풀이 방법 우선 이 문제에서는 중복되는 수를 없애기 위해 Set()을 사용했다. 이중 for()문을 사용해 반복하며 numbers의 값들을 더해준다. 하지만 중복 인덱스 값은 더하지 않으므로 if문에 조건을 더해준다. 답 제출은 배열로 해야하므로 Set을 펼침 연산자로 배열에 넣어준다. 마지막으로 sort로 오름차순으로 나열해주고 답 제출을 하면 된다. 코드 ..
문제 설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한 사항 n은 1 이상 100,000,000 이하인 자연수입니다. 문제 풀이 방법 우선 받은 수를 n.toString(3)을 사용해 3진법으로 바꿔준다. 3진법으로 바꾼뒤 배열에 펼침연산자를 이용해 넣어주고 reverse()로 뒤집은 다음 join('')으로 합쳐준다. 이러면 3진법으로 바뀐뒤 뒤집힌 문자열이 나오는데, 이를 정수형으로 바꿔주면 된다. parseInt(바꿔줄 수, 바꿀 수의 진수형태) 코드 function solution(n) { let arr = [...n.toString(3)] const tNum = arr..
문제 설명 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. 제한 사항 absolutes의 길이는 1 이상 1,000 이하입니다. absolutes의 모든 수는 각각 1 이상 1,000 이하입니다. signs의 길이는 absolutes의 길이와 같습니다. signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다. 문제 풀이 방법 reduce() 메서드 내부에 if else 문을 이용해 signs[index] 를 확인하고 덧샘 뺄샘을 했다. 그러나...
58청춘
'코딩테스트' 태그의 글 목록