안녕하세요.
|를 좋아하는
개발자 |입니다.

thumbnail
알고리즘 준비하기 - 위상 정렬

🎯 위상 정렬이란? 은 순서가 정해져 있는 작업을 차례로 수행해야할 때 그 순서를 결정해주기 위해 사용하는 알고리즘이다. 가장 이해하기 쉬운 예로는 게임 캐릭터 키우기(?)가 있다. 예를 들어 주먹으로 때리기는 맨 처음에 배우는 기본 스킬이다. 하지만 몸통 박치기는 주먹으로 때리기라는 스킬을 배워야만 배울 수 있는 스킬이다. 또 고함 지르기 역시 주먹으로 때리기를 배워야만 익힐 수 있는 스킬이다. 필살기는 몸통 박치기와 고함 지르기를 모두 익혀야만 배울 수 있는 스킬이다. 이러한 흐름은 조건을 걸어줘서 해석할 수 있다. 한마디로 모든 일에 순서 제약이 걸려있는 셈이다. 은 사이클이 존재하지 않는 방향 그래프여야 한다는 전제조건이 있다. 사이클이 발생하면, 시작점이 없기 때문에 위상 정렬을 수행할 수 없기 때문이다. 🎯 위상 정렬 구현하는 법 (JS) 위상 정렬을 수행하는 알고리즘은 를 이용하여 구현하 수 있다. 모든 관계는 그래프화가 되어 있다고 가정한다. 해당 노드에 연결되는 들…

React - Footer 아이콘 클릭시 색 변경하기

이 글은 Footer 컴포넌트를 상위 컴포넌트로 설정하지 않았을 때 적용이 가능합니다. 그렇다… 페이지를 다 구현하고 세부기능을 구현하기 위한 나의 잘못된 생각으로 이 사단이 발생하였다. 이 글은 내가 겪었던 시행착오까지 다 담긴 글이니 부디 이 글을 읽으시는 분들은 나와 같은 오류로 인하여 먼 길 돌아가지 않았으면 한다. Header와 Footer은 항상 상위 컴포넌트로 설정해둔다…메모… ---|---| 위와 같이 아이콘1을 누르면 페이지1이, 아이콘2를 누르면 페이지2가 나오게끔 하려고 한다. 단, 눌렀을 때 해당 아이콘의 상태만 변경되고 나머지 아이콘은 기본값을 유지해야 한다. 지난 포스트 아이콘 클릭했을 때 변경하기를 조금 응용하면 된다. 색 입히기까지는…성공…하지만 그대로 코드를 쓰기에는 useState의 값이 로 들어가기 때문에 모든 아이콘의 색이 변경되거나 유지된다. 따라서 를 하나 더 만들어줘서 아이콘마다 set상태를 변경해서 해당 상태일 때마다 색상이 바뀌게끔 하…

HSAT 자격인증 평가 9회 후기

✏️ HSAT 자격인증 평가란? 은 현대자동차그룹 에서 주최하는 코딩테스트 역량검증 평가이다. 보통 1년에 3회정도 평가에 참여할 수 있으며, 문제는 총 2문제, 시험시간은 3시간이다. 2문제 모두를 맞혔을 경우에만 현대자동차 그룹 회사인 현대자동차, 기아, 현대오토에버, 현대모비스, 현대차증권의 코딩테스트를 면제해주는 혜택을 2년간 누릴 수 있다. 지원 언어는 생각보다 많으니 위 사진을 참고하면 된다. PCCP와는 다르게 응시료도 받지 않으니 마음 편하게 지원해도 된다. 🐣 준비 과정 👉 소프티어 연습문제 풀어보기 : Softeer 연습문제 위 사이트에 들어가면 지금까지 응시했던 HSAT 정기평가 기출문제를 풀어볼 수 있다. 꼭 위 문제를 풀어보길 바란다. 보통 코딩테스트가 프로그래머스에서 이루어지나 HSAT은 Softeer 자체 IDE에서 이뤄지기 때문에 시각적으로(?) 익숙함이 필요하다. 특히 자바스크립트 기준으로는 프로그래머스에서는 사용하지 않는 모듈 입력을 Softee…

알고리즘 준비하기 - LIS

🎯 LIS(최장 증가 부분 수열) 원소의 개수가 N개인 배열이 있다고 가정을 해보자. 배열의 원소 index는 변하지 않는 조건 하에 각 원소가 이전 원소보다 큰, 그 길이가 최대인 부분 수열을 이라고 한다. 🎯 이분탐색을 활용한 LIS LIS 알고리즘을 구현하는 방법은 여러가지가 있지만 을 이용한 방법은 효율적으로 구현할 수 있다. 일반적으로 이분탐색은 O(logN)에 탐색이 가능하기 때문에 LIS를 구현하는 문제에서는 O(NlogN)의 시간복잡도로 문제를 해결할 수 있다. 위 이분탐색을 이용하여 LIS를 구하는 코드는 아래와 같다. 🎯 실제 LIS에 해당하는 배열 구하기 위 방법은 LIS의 길이를 구하는 방법이다. 따라서 실제 해당 길이에 포함되는 배열을 구하고 싶을 때는 추가적인 작업이 필요하다. 위에서 살펴봤던 LIS를 구하는 과정처럼 LIS 배열과 Record라는 배열을 생성한 후 LIS 배열에는 기존 과정을, Record라는 배열에는 LIS 몇번 째 배열에 값이 입…