코딩 테스트

문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 간만에 올리는 코테 풀이다.. 최근에 bfs, dfs 개념을 공부하고 정리할 겸 내가 푼 풀이를 다 풀어서 기록해보려고 한다. 이번 문제는 bfs(너비우선 탐색) 방법으로 문제를 풀었다. 이렇게 캐릭터가 위치해 있으면 빨간색 오각형이 있는 위치까지 최단거리로 이동하면 된다. 검은색 부분은 막혀있는 곳이므로 지나갈 수 없고 흰색 부분을 지나되 가장 짧은 거리로 이동하면 승리한다. 여기서 제한..
숫자들이 공백으로 구분된 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이 때 “Z”가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 “Z”로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return 하도록 solution 함수를 완성해보세요. 입출력 예 s result "1 2 Z 3" 4 "10 20 30 40" 100 "10 Z 20 Z 1" 1 입출력 예 #1 본문과 동일합니다. 입출력 예 #2 10 + 20 + 30 + 40 = 100을 return 합니다. 입출력 예 #3 "10 Z 20 Z 1"에서 10 다음 Z, 20 다음 Z로 10, 20이 지워지고 1만 더하여 1을 return 합니다. [풀이] function solution(s) { con..
my_string은 "3 + 5"처럼 문자열로 된 수식입니다. 문자열 my_string이 매개변수로 주어질 때, 수식을 계산한 값을 return 하는 solution 함수를 완성해주세요. 제한사항 연산자는 +, -만 존재합니다. 문자열의 시작과 끝에는 공백이 없습니다. 0으로 시작하는 숫자는 주어지지 않습니다. 잘못된 수식은 주어지지 않습니다. 5 ≤ my_string의 길이 ≤ 100 my_string을 계산한 결과값은 1 이상 100,000 이하입니다. my_string의 중간 계산 값은 -100,000 이상 100,000 이하입니다. 계산에 사용하는 숫자는 1 이상 20,000 이하인 자연수입니다. my_string에는 연산자가 적어도 하나 포함되어 있습니다. return type 은 정수형입니다...
점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를 작성해주세..
문제 설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작..
문제 설명 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택 첫 번째(3번), 세 번째(2번) 폰켓몬을 선택 첫..
[풀이] function solution(x, n) { let result = []; for (let i = 1; i
[풀이] function solution(x) { const newArr = x .toString() .split("") .map((arg) => Number(arg)); let sum = 0; for (let i = 0; i < newArr.length; i++) { sum += newArr[i]; } return x % sum === 0 ? true : false; } 1. 새로운 배열을 담을 변수를 만들고 x를 문자열로 변환해준다. (배열에 담기위해서..) 2. 그리고 문자열을 쪼개 배열로 만들고, map 함수를 이용해 숫자로 바꿔준다. 그러면 [1, 0]이 되어 있을 것. 3. 합한 수를 담을 변수를 만든다 (sum) 4. for문을 새로운 배열의 길이만큼 순회시키고, sum 변수에 새로운 배열의..
[풀이] function solution(n) { const arr = n.toString().split("").sort(); const result = parseInt(arr.reverse().join("")); return result; } 1. 배열을 담을 변수를 만들고 n을 문자열로 변환후 쪼개서 잘라 배열에 담고 오름차순으로 정리해준다. 2. 그 배열을 뒤집고(내림차순으로 만들기위해) 붙여준 후 숫자로 바꿔준 결과값을 리턴한다. [코드리뷰] function solution(n) { const arr = n.toString().split("").sort((a, b) => b - a).join("") return parseInt(arr); } 1. sort()를 사용할 때 의도치 않은 결과가 나오는..
[풀이] function solution(n) { const str = n.toString(); //const mapNum = (arg) => Number(arg); const newArr = str.split("").map((arg) => parseInt(arg)); return newArr.reverse(); } 1. n을 문자열로 만들어준다. "12345" 2. 새 배열에 그 문자열을 쪼개서 담아주고 map 함수를 이용해 숫자로 바꿔준다. [1, 2, 3, 4, 5] 3. 새 배열을 뒤집어 리턴한다. [코드 리뷰] function solution(n) { return n.toString().split("").map(Number).reverse(); } 별다른 변수를 설정하지 않고 한줄로도 코드 작성..
hayeonn
'코딩 테스트' 카테고리의 글 목록