:: All Story ::79 [백준 / JS] 1003. 피보나치 함수 ⭐ intro : 문제를 생각해나간 방식 피보나치, 팩토리얼... 대표적인 재귀함수로 풀어가는 문제이다. 다만 재귀함수의 경우 특정 return이 나올때까지 꾸준히 자신을 호출하기 때문에 시간복잡도가 O(2^n)이 되면서 특정 값을 찾게될때 시간을 엄청 잡아먹을 수 있게 된다. 그래서 이번엔 재귀로 풀어가보되, 효율적인 메모이제이션을 이용해서 풀어가보기로 했다. 시간복잡도는 O(1)의 속도로 획기적으로 줄인 케이스라고 볼 수 있겠다. ⭐ 풀이과정일단 문제에 알맞은 구현에 앞서서 피보나치 함수부터 구현해 보기로 했다. 캐싱으로 활용할 수 있는 방법으로는 class를 이용해서 피보나치 수열 값들이 캐싱(저장)될 수 있도록 생각해보았다. class로 생성된 인스턴스들은 prototype들로서 같은 값들을 공유.. 2025. 5. 9. 99클럽 코테 스터디 20일차 TIL - CD (백준 4158 / JavaScript) 오늘의 문제 링크 ⭐ intro : 문제를 생각해나간 방식 챌린지 마지막 문제라 쉬운문제를 내주었구만? 땡큐~ㅋ 하다가 큰코다쳤다. 아주그냥 시멘트바닥에 질질 끌렸다. 그동안 한눈팔면서 잘 보지 않았던 '이분탐색'을 그나마 맛보게 된 매운 케이스로 인지했다. 어쩐지 이중 for문을 이용해서 풀면 금방 풀텐데 왜 정답률이 처참한지 다시금 깨달았었다. 이 문제는 이중 for문을 사용하면 '절대' 풀 수 없다. 평소처럼 주어진 input을 내 입맛에 맞게끔 쪼개고 맛있는 객체로 만드는 요리과정도 이번에는 많은 절차를 바꿔야 했다. 왜 조건의 마지막 값에 '0 0'값을 주어지게 하는지 그 의도를 그냥 넘기지 말고 '왜' 넣었을지 파악했어야 했다. 전체 index 값을 알아야 했기에 생 날것의 input을 그대로.. 2025. 4. 28. 99클럽 코테 스터디 19일차 TIL - Sort 마스터 배지훈의 후계자 (백준 20551 / JavaScript) 오늘의 문제 링크 ⭐ intro : 문제를 생각해나간 방식 문제와 출력값, 입력값들을 골똘히 보면서 어떻게 풀어야할지 풀어나가야할 연결고리를 찾아내어 갔다.입력값의 첫번째 값은 원소A의 갯수를 나타낸다입력값의 두번째 값은 질문(조건)M의 갯수를 나타낸다입출력값이 전부 숫자만 보이므로 number값들로 계산하고 표현해야겠군?1번의 원소A의 값들을 오름차순으로 한번 정렬할 필요가 있겠군~ 이제 슬슬 각이 보인다원소A값들을 오름차순으로 정렬해보면 이렇게 나오게 되는군질문M이랑 대조해서 해당 값이 몇번째 index에 있는지 뽑아내면 되겠군?key, value값 할당이 편안한 Map()으로 만들어서 값들을 key로, 인덱스 값은 value로 지정해서 질문M 갯수만큼 순회해서 console.log로 뱉어내면 답이.. 2025. 4. 25. 99클럽 코테 스터디 18일차 TIL - 캠프가는 영식 (백준 1590 / JavaScript) 오늘의 문제 링크 ⭐ intro : 문제를 생각해나간 방식 피도 눈물도 없는 사악한 민식이를 혼쭐내주러 가는 영식이의 장렬한 스토리다. 코딩으로 어떻게 풀어야할까? 이번에도 마찬가지로 두 조건을 순회하면서 값을 비교하는 형식으로 코드를 만들어갔다. 코드문을 이해하고, 육안으로 테스트케이스까지 출력되게끔 만드는데는 오래 걸리지 않았는데 자꾸 틀렸다고 나와서, 도데체 무엇이 문제인지 오류를 찾는 부분에서 시간을 상당히 소요하게 되었다. 이번 문제의 오류 포인트는 infinity였다.... 버스 출발시간과 맞지 않으면 -1을 내뱉는 케이스에서, 결과값은 예상대로 잘 뱉는데 문제가 뭐지? 싶다가 해당 케이스에서 내 알고리즘 상에서 이 Infinity가 들어가는 부분을 발견하고야 만것이다. 이 케이스를 발견하는데.. 2025. 4. 24. 99클럽 코테 스터디 17일차 TIL - Find the Distance Value Between Two Arrays (리트코드 1385 / JavaScript) 오늘의 문제 링크 ⭐ intro : 문제를 생각해나간 방식 3개의 매개변수가 주어지되, 각각 1~3번이라 칭하고 1번(이하 arr1)과 2번(이하 arr2)의 각 요소끼리의 차잇값이 3번보다 같거나 작을경우의 매칭 경우의 수를 구하는 문제다. 앞서 풀었던 문제처럼 이중 for문으로 돌면서 각 요소끼리 조건을 순회해서 풀면 되겠다 싶었다. 다만 절대값을 구해야 하므로 차이값이 음수일 경우 '-'를 씌워주면 되겠다 싶었다. ⭐ 풀이과정 이번에도 매우 간단하게 풀었다. 항상 매 주의 이틀정도까지는 쉽게 풀었었던것 같다. 내일은 난이도가 확 올라가겠지...?ㅎ.. 일단 리턴값으로 넘겨줄 result 상수를 만들었다. 또 첫번째 배열을 순회할때 첫번째 값을 순회할 때마다 true, false에 따라 1이상이 올라.. 2025. 4. 22. 99클럽 코테 스터디 16일차 TIL - Intersection of Two Arrays (리트코드 349 / JavaScript) 오늘의 문제 링크 ⭐ intro : 문제를 생각해나간 방식 음... 이게 맞나? 싶을정도로 매우 간단하게 풀었다. 배열을 각각 순회하면서 중복값을 걸러주는 Set()에 저장해서, 해당 값을 바로 리턴. 사실 이게 시간복잡도로 치면 매우 느린 방식이라는것 나 또한 잘 인지하고 있다, O(num1길이 + num2길이) 만큼 걸릴것이므로... 이진탐색이 이론상으로는 절반 절반씩 줄여가면서 10억만개 요소라도 한 최대 12번 안으로 찾아낼 수 있는 방식이라는것도 얼추 알고있긴 하지만... 내 뇌는 두번째 인자가 2개 이상이고 원본배열이 홀수일 경우라는 조건에서 턱 막혀버렸다. 그래서 일단은 원시적인 방법으로 풀었다. 최악의 시간복잡도를 가지고 있다 할지언정... ⭐ 풀이과정 오늘은 크게 쓸것이 없다. 배열 한개.. 2025. 4. 22. 이전 1 2 3 4 ··· 14 다음