코테연습

문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/138477 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 단순 구현 문제로 앞의 k 개 만큼은 명예의 전단 배열에 넣어도 되지만, 그 이후의 점수는 명예의 전당에 이미 들어가 있는 점수들과 비교한 뒤 score[i]의 점수 보다 작아지기 시작하는 점수를 찾아내 뒤로 밀어내야한다. 이때 findIndex 메서드를 이용해 위치를 찾는데 만약 -1을 반환해 조건에 맞는 점수가 없으면 다음으로 넘어간다. 완성된 코드 const so..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/12946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 이 문제는 모 부트캠프 코테를 보며 기억에 남은 문제중 한개이다. 하노이의 탑 문제는 기본적으로 재귀 함수를 사용해 풀어야 하는 문제이며, 나는 이걸 이해하기 힘들었다. 문제에서 중요한 것은 제일 큰 원판을 제외한 나머지 원판들은 목적지가 아닌 경유지에 모두 있어야 하고, 제일 큰 원판을 옮긴 뒤 나머지 원판들도 경유지를 거쳐 목적지로 옮겨야 한다는 것이다. 이 때, 재..
문제 설명 문제 풀이 방법 우선 n을 k진수로 바꾸는 것부터 시작했고, 문제 설명에서 0과 인접한 수들을 추출하는 것으로 문제를 파악하기 시작했다. 이는 split('0')을 해주면 0을 기준으로 0이 제외된 배열을 반환하게 되기에 수들의 배열을 확인할 수 있다. 그리고 filter메서드로 1과 빈 문자열을 제외해준다. 0이 제외된, 0에 인접했던 수들의 배열을 forEach메서드를 이용해 각 수들이 소수임을 확인한다. 소수가 맞다면 반환할 값에 1을 더해준다. 이렇게 더해진 값을 반환해준다. 코드 1 function solution(n, k) { let answer = 0; const num = n.toString(k).split('0').filter((e) => { return e !== '1' ? ..
문제 설명 문제 풀이 방법 이 문제는 filter 메서드의 사용이 중요했던 문제였던것 같다. 첫번째로 참고한 코드는 filter메서드의 사용이 중요한 코드이다. 흐름을 보면 skill_trees에서 tree들을 걸러야 되므로 1차적으로 filter메서드를 사용, 그 다음에는 skill_trees들의 각 요소 별로 skill에 있는 맨 처음 글자가 먼저 오는 방식이기에 skill에 속한 글자들이 있는 문자를 includes를 이용해 첫번째 문자를 추출한 뒤 indexOf를 이용해 skill에서의 index값이 0인 요소를 모아 길이를 반환한다. 두번째 코드는 정규식으로 풀 수 있는 코드이며 흐름을 보자면 전체 skill_trees를 map메서드를 이용해 순회해주고 각 요소별 replace메서드를 정규식과 ..
문제 설명 문제 풀이 방법 알파벳이 들어가는 사전 배열을 만들어준다. for문으로 msg를 순회하며 word에 msg[i]의 문자를 더해준다. 그리고 word가 사전에 있다면 사전에서의 index값을 저장한 뒤 다음 바퀴에서 또 word가 있는지 확인한다. 이때, 없다면 그 word는 사전에 등록하고, 저장한 index값을 answer배열에 push메서드로 넣어준다. 마지막에는 for문이 다 돌때 마지막 index값을 answer배열에 넣어주지 못하기에 for문이 끝나고 마지막 index값을 넣어준다. 이 코드와 내가 처음 생각했던 방식의 순서가 반대이다. 나는 먼저 문자가 있는지 확인한 다음 배열에 넣는 방법이였지만 문제에서는 오류를 일으키는 방법이다. 이렇게 체크한 뒤 데이터를 가공하는 문제는 항상 ..
문제 설명 문제 풀이 방법 이 문제는 3가지 단계로 나누어 풀었다. 주어진 문자열을 2개씩 나누는 작업(특수문자, 숫자 등이 있으면 제외하는 작업도 포함) 합집합과 교집합을 구하는 작업(이때 다중집합 작업을 해줌) (추가 23-06-11) set을 이용한 이유는 두개씩 나누어진 배열들 간 겹치지 않는 요소들을 모은뒤 이를 이용해 set의 요소별 나누어진 배열들에 있는 같은 요소들의 갯수를 구해 교집합, 합집합을 구하기 위함이다. 나온 합집합과 교집합을 이용해 답을 구하는 작업 내가 작성한 코드 const solution = (str1, str2) => { let arr1 = makeArr(str1.toLowerCase()); let arr2 = makeArr(str2.toLowerCase()); // 다..
58청춘
'코테연습' 태그의 글 목록 (4 Page)