프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 쉬운줄 알고 바로 풀었는데 계속 시간초과가 났다. 시간복잡도를 고려를 더 하고나서 풀자! 틀린 풀이 1 function solution(players, callings) { let newPlayers = [...players] for(let i = 0; i < callings.length; i++) { const tem = newPlayers.indexOf(callings[i]) newPlayers = [...newPlayers.slice(0,tem), ...newPlayers.splice(tem+..
전체 글
📚 시리즈 목차 1. 컴퓨팅 사고 2. C언어 3. 배열 4. 알고리즘 5. 메모리 6. 자료구조 6. 자료구조 2) 배열의 크기 조정하기 배열 이미 만들었는데 크기를 변경하려고 한다면 어떻게해야할까? 안전하게 하려면 새로운 공간에 큰 크기의 메모리를 다시 할당하고 기존 배열의 값을을 하나씩 옮겨줘야한다. 왜 이미 할당된 메모리의 크기를 바로 조절을 못하고 임시 메모리를 새로 할당한 뒤 작업을 해줘야할까? 이미 할당된 메모리 옆에는 다른 값이 저장되어있어 메모리를 연속적으로 사용할 수 없기 때문에 조절하고자 하는 크기로 임시 메모리를 새로 할당하여 기존의 값을 그대로 옮겨주고 추가로 할당한 메모리에 새로운 값을 추가 할 수 있다. 쉽게말해 메모리를 사물함이라고 한다면 사용할 사물함의 개수를 한 번 정한..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 먼저 처음 풀었던 코드이다. 틀린 코드 테스트케이스는 통과하지만 허점이 있다. 일단 가독성이 최악이고 처음 deliveries 배열의 끝에 원소가 0이면 잘못된 답이 출력된다. 그리고 시간초과도 떠서 이렇게 if문으로 풀 수도 있겠지만 엄청 꼼꼼하게 풀어야 하고 실수를 하면 안 된다. 이렇게 푼다고 할지라도 나중에 유지보수가 너무 힘들것 같아서 처음부터 다시 풀기로 하였다. function solution(cap, n, deliveries, pickups) { const saveCap = cap l..
여러 기업들의 기술 블로그를 보다보면 많이 나오는 것들 중 하나가 'Yarn Berry'이다. 이번에는 Yarn Berry에 대해 알아보자 Yarn berry는 다양한 기업에서 사용하고 있다. node_modules로부터 우리를 구원해 줄 Yarn Berry - 토스 ⭐️⭐️ 추천 yarn Berry workspace를 활용한 프론트엔드 모노레포 구축기 - 배민 리멤버 웹 서비스 좌충우돌 Yarn Berry 도입기 - 리멤버 모노레포 적용부터 yarn berry까지 - 화해 ⭐️⭐️ 추천 모던 프론트엔드 프로젝트 구성 기법 -naver D2 (yarn Berry 가 무조건 좋은건 아니다. 상황에 맞는 패키지를 쓰면 된다. 실제로 회사들도 하나의 패키지로 통일하지는 않는다.) (ex 배민 스토어팀은 pnp..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📚 나의 풀이 이 문제는 부동 소수점 오차를 조심해야한다. users의 형태 : users = [ 비율, 가격] 📃 문제 풀이 순서 1️⃣ 이모티콘 할인율 (10%, 20%, 30%, 40%)중에서 비율보다 낮은 할인율은 제거 function getDiscountRates(users) { const minRate = Math.min(...users.map(([discountRate,_]) => discountRate)) return [40, 30, 20, 10].filter((rate) => rate >= m..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 이 문제는 사소한 실수로 인해 3시간을 풀었다. 결국 테스트 케이스를 직접 9개 정도 만들고 나서 발견했다. 화살표함수를 사용했는데 return을 써주지 않아서 undefined이 계속 return되어서 되지 않았다. 그걸 찾았을 때 정말 허무했지만 그래도 기뻤다. 어떻게 하면 이런실수를 다음에 하지 않을까? 확실히 코드가 길어지고 복잡해지면 실수할 가능성이 너무 높아져서 조심해야한다. 그런다고 처음부터 리팩터링하면서 진행하면 까다로운 문제는 정말 오래걸려서 딜레마다. 일단은 최대한 주석은 많이 작..
이글을 읽기전에 ORM에 대해 알아야 합니다. ORM 이란? 📌 ORM ? 프로젝트를 하다보면 데이터 베이스가 사용해야할 때가 온다. 하지만 프로그래밍은 데이터를 활용할 때 주로 객체를 사용하고 관계형 데이터베이스는 테이블을 사용하기 때문에 서로 html-jc.tistory.com 1. Prisma란? Prisma는 현대적인 ORM도구로, 데이터베이스와의 상호작용을 쉽고 효율적으로 관리하는 도구이다. Prisma는 개발자가 데이터베이스 스키마를 정의하고, 데이터베이스에 대한 질의 및 조작을 수행하는 작업을 단순화하는데 사용한다. 흠... ORM이라는 것은 알겠는데 그럼 기존 ORM과 어떤 차이가 있을까? prism 공식 사이트로가면 prisma를 '차세대 Node.js와 TypeScript ORM'이라고..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 이 문제가 level.1 오답률 2등이던데 이유를 알 것 같다. 조건을 명확하게 지켜야 정답이된다. 문제 풀이 순서는 아래와 같다. 📌 1. 시작 포인트 찾기 시작 포인트가 매번 0,0이 아니기 때문에 매 route마다 찾아야한다. function findStartingPoint(park) { let [nowX, nowY] = [0, 0]; for (let i = 0; i < park.length; i++) { if (park[i].indexOf('S') !== -1) { nowX = park[i]..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 어렵기보단 실수를 유발할 수 있는 문제인 것 같다. 이번이 두 번재 풀이인데 첫 번째 풀이때와 똑같은 실수를 했다. 실수의 가장 큰 원인은 대충 작성한 코드때문이다. 코테문제를 풀다보면 빠르게 풀고나서 리팩터링을 진행하는데 빠르게 풀다보면 변수명, 함수명을 대충 정하기에 풀이가 길어지면 헷갈리거나 처음에 고려했던 부분을 고려하지 않게되는 경우가 발생해서 의도와 다른 답이 나와서 틀리는 경우가 있는데 오늘이 그랬다. 시간이 걸리더라도 풀이가 길어질때는 리팩터링 하면서 천천히 진행해야겠다. 이 문제에서..