목록Study/Coding Test (85)
Jieunny의 블로그
📌 문제 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성하세요. 💡 아이디어 1. 처음 아이디어는 갈 수 있는 값들을 먼저 모아둔 다음에 제일 큰 값으로 가기 였는데 생각해보니, 방향성이 있기 때문에 더할 수 있는 값이 제한되어 있어서 계속 큰값을 더해준다고 해서 결과값이 최대가 되는 건 아니었다. 2. 각 요소에서 나올 수 있는 제일 큰 합을 가..
📌 문제 정수로 이루어진 배열 numbers가 있습니다. 배열 의 각 원소들에 대해 자신보다 뒤에 있는 숫자 중에서 자신보다 크면서 가장 가까이 있는 수를 뒷 큰수라고 합니다. 정수 배열 numbers가 매개변수로 주어질 때, 모든 원소에 대한 뒷 큰수들을 차례로 담은 배열을 return 하도록 solution 함수를 완성해주세요. 단, 뒷 큰수가 존재하지 않는 원소는 -1을 담습니다. 💡 아이디어 이중 for문 돌면서 자기보다 큰 수 발견하면 answer에 push하고 break -> 테케 4개 시간초과 이중 for문을 한번으로 줄여야 할 것 같은데.. 스택을 이용해서 해야되는 건 알겠는데 어떻게 해야할지 몰라서 검색해봤는데도 이해가 안됬다ㅠㅠ.. 그림까지 사용해서 친절하게 설명해둔 블로그가 있어서 이..
📌 문제 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니다. 단어 하나 word가 매개변수로 주어질 때, 이 단어가 사전에서 몇 번째 단어인지 return 하도록 solution 함수를 완성해주세요. 💡 아이디어 나올 수 있는 모든 단어를 DFS로 만들고, 정렬해서 찾는 word의 index를 가져온다. 말은 쉬운데 DFS가 너무 어려워서 여기저기 찾아봤다🥹 📚 참고 https://velog.io/@cyd5538/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%AA%..
📌 문제 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 💡 아이디어 정답 배열을 prices의 길이만큼 초기화해준다. prices 배열 전체를 돌면서 다음 초에 가격이 떨어지지 않으면 +1, 떨어지면 떨어진 지점에서 for문을 멈추고 j - i 를 해준다. j - i 를 하는 이유는, j 와 i 가 인덱스를 가리키고 있기 때문에 j - i 해주면 몇 초동안 유지되었는 지 알 수 있다. ✏️ 풀이 function solution(prices) { const n = prices.length; const answer = new Array(n).fill(0); for(let i=0; i
📌 문제 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 💡 아이디어 그냥 이중 포문 돌리면 효율성 테스트 통과 X 해시맵을 이용해서 저장해준다. ✏️ 풀이 function solution(phone_book) { const hashMap = ne..
📌 문제 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다. 위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬트리는 가능하지만, 썬더 → 스파크나 라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스킬트리는 불가능합니다. 선행 스킬 순서 skill과 유저들이 만든 스킬트리1를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 return 하는 solution 함수를 작성해주세요. 💡 아이디어 ..