목록전체 글 (118)
상권's
한 주가 얼마나 빠르게 지나가는 지 섹션 2 HA 회고를 쓸 때가 엊그제 같은데 어느새 일주일이 지났습니다. HA에 이후 시간에 여유가 있어서 푹 쉬어서 그런지 이번 주는 유난히 피곤한 한 주였습니다. 이번 주는 리눅스 사용 권한, 환경 변수, 코딩 테스트 준비(시간 복잡도, 순열/조합, GCD/LCM, DP 등등), 데이터베이스 기초에 대해서 학습했습니다. 리눅스 학습할 때 dotenv에 대해서 이해는 했지만 어떻게 사용하는 지 감이 잡히질 않았는데, 데이터베이스를 학습하면서 실제로 사용해보고 이해했습니다. 데이터베이스도 일과 시간 이후에 조금씩 학습했던 게 있어서인지 낯설지 않고 쉽게 이해했습니다. 코딩 테스트 학습은 알고리즘에 많은 시간을 투자한 만큼 실력이 늘었다라는 걸 느꼈습니다. DP를 제외하..
-오늘의 코플릿 2021.11.12- 문제 세로와 가로의 길이가 각각 M, N인 방의 지도가 2차원 배열로 주어졌을 때, 1은 장애물을 의미하고 0 이동이 가능한 통로를 의미합니다. 로봇은 지도 위를 일분에 한 칸씩 상하좌우로 이동할 수 있습니다. 로봇의 위치와 목표 지점이 함께 주어질 경우, 로봇이 목표 지점까지 도달하는 데 걸리는 최소 시간을 리턴해야 합니다. 인자 2 : src number 타입을 요소로 갖는 배열 인자 3 : dst number 타입을 요소로 갖는 배열 //상 하 좌 우에 해당하는 움직임을 배열로 만든다 //출발지부터 시작해서 => 상 하 좌 우 배열을 돈다 undefined일 경우 return; //undefined가 아닐 경우 count 1 제일 먼저 도착을 하는 게 있으면 바..
-오늘의 코플릿 2021.11.11- radixSort 문제 정수를 요소로 갖는 배열을 입력받아 오름차순으로 정렬하여 리턴해야 합니다. 주의사항 기수 정렬을 구현해야 합니다.arr.sort 사용은 금지됩니다. 입력으로 주어진 배열은 중첩되지 않은 1차원 배열입니다. 힌트 기수 정렬(radix sort)은 내부적으로 계수 정렬(counting sort)을 사용합니다.계수 정렬을 먼저 학습하고, 어떤 경우에 기수 정렬을 사용하는지 학습하도록 합니다. // DP 에서 학습했던 거처럼 진행을 하면 안될까? // arr에서 maxNum을 구한다. // maxNum을 구해서 해당 수만큼 0으로 채워진 배열을 만든다. zeroArr // arr를 돌면서, 해당 숫자의 인덱스 부분을 1로 채워준다. // zeroArr..
-오늘의 코플릿 2021.11.10- 2차원 M x N 배열을 나선형(spiral)으로 순회해야 합니다. 입력 인자 1 : matrix 세로 길이(matrix.length)가 M, 가로 길이(matrix[i].length)가 N인 2차원 배열matrix[i]는 string 타입을 요소로 갖는 배열matrix[i][j].length는 1 출력 string 타입을 리턴해야 합니다. 주의사항 순회는 좌측 상단 (0,0)에서 시작합니다.배열의 모든 요소를 순서대로 이어붙인 문자열을 리턴해야 합니다. 오늘 문제는 수도 코드 작성도 어려웠습니다. 스택이나 큐, 길이만큼 먼저 움직이는 방향에 대해서 하드코딩 해놓고 코드를 구현해볼까도 했지만 쉽지 않았습니다. 구글링을 통해서 외곽을 먼저 돌게 되면, 내부에는 외곽이랑..
-오늘의 코플릿 2021.11.09- 2차원 N x N 배열을 시계 방향으로 90도 회전시킨 배열을 리턴해야 합니다. 인자 1 : matrix 가로 길이(matrix[i].length)와 세로 길이(matrix.length)가 모두 N인 2차원 배열matrix[i][j]는 number 타입 2차원 배열을 리턴해야 합니다. Advanced 세로와 가로의 길이가 각각 M, N인 2차원 M X N 배열을 시계방향으로 90도씩 K번 회전시킨 배열을 리턴해 보세요. 회전수가 두 번째 입력으로 주어집니다. // 90도로 회전시키면 각 행의 0번째 요소가 리턴되는 새로운 matrix 0번째 행의 요소들이 된다. // 각 행의 1번째 요소가 1번째 행의 요소들이 된다. // 행의 길이만큼 반복문을 돌려서 집어넣어준다...
-오늘의 코플릿 2021.11.08- // 아래와 같은 과정을 거쳐 부등호 수(inequalityNumber)를 만들 수 있습니다. // 최대 9개의 부등호()가 주어집니다. // 부등호의 좌우에는 0부터 9사이의 숫자가 한 번씩만 들어가야 합니다. // 부등호를 만족하는 숫자의 조합을 차례대로 이어 붙여 만든 정수를 부등호 수라고 한다. // 부등호 기호들을 입력받아 부등호를 만족하는 최대 부등호 수와 최소 부등호 수의 차이를 리턴해야 합니다. 최대 부등호 수와, 최소 부등호 수의 차이... maxNum과 minNum을 구한다. maxNum은 부등호가 > 일때, 제일 처음에 98가 들어온다 && 일때, 10이 들어온다. < 일때 01이 들어온다...
11월 5 ~ 6일동안 진행되었던 HA를 통해서 섹션 2가 정말로 끝이났습니다. 추석 직후에 섹션 1 HA를 했었는데, 어느새 날씨는 추워졌고 11월이 시작되었습니다. 퇴사한 지도 벌써 5개월째에 접어들었습니다. 빠르게 지나갔던 시간들을 되돌아보니 참 많은 것들이 변했습니다. 자바스크립트를 하나도 몰랐고, 알고리즘 문제를 직면하면 한 숨부터 나왔던 제가 어느 샌가 어려운 알고리즘 문제에 흥미를 가지기 시작했고, 다음에 학습할 것에 두근거림을 가지게 되었습니다. 섹션 2를 통해서 재귀, 자료구조, 비동기, HTTP/네트워크, 서버, 컴포넌트 디자인을 학습했습니다. 섹션 2에서 제일 흥미로웠던 건 HTTP/네트워크, 서버였습니다. 반면 제일 어려웠던 과정은 컴포넌트 디자인입니다. 스토리북을 이용해서 컴포넌트..
클라이언트 앱을 통해서 영화 정보를 조회하는 서버를 구현하는 과정에서 발생했던 에러입니다. REST Api를 구현하는 과정에서, movies/:id 값이 들어오면 해당 파라미터와 동일한 정보를 respone해야 했습니다. 파라미터 값이 들어가진 않는 조회 기능은 손쉽게 구현할 수 있었지만, 파라미터 값이 들어가는 경우 조회 기능을 아래와 같이 구현했을 때 작동하지 않았습니다. app.get('/movies', (req, res) => { return res.status(200).send(movies); }); app.get('/movies/:id', (req, res) => { const filtered = movies.filter((movie) => { return req.params.id === mo..