프로그래머스에서 진행된 카카오커머스 개발자 영입 - 프론트엔드 개발 챌린지에 지원해보았다. 사실 코딩테스트만 한 번 풀어보려고 지원했다. 아직 실력이 너무너무 부족하기 때문에.. ㅎㅎ 시험이 시작되고 1, 2, 3번 문제를 쭉 훑어봤는데 그냥 어려워보였다. 시간이 정해진 코딩테스트를 풀 때면 항상 머릿속이 하얘지면서, 문제를 읽어봐도 내용이 잘 이해가 안 가는데 오늘도 그랬다. ㅠㅠ 1번 문제는 전에 풀어봤던 문제 중에 비슷한 문제가 있어서 내가 써놨던 글을 보면서 풀었는데 똑같은 삽질을 또!!!! 해가지고 1시간 넘게 걸렸다
문제 바로가기 오늘 하루종일 붙잡고 있었던 문제.. 풀어내긴 했지만 진이 다 빠져서 설명 포기^^! 삽질 재생 시간을 잘못 구했다. 13:30 - 14:40 처럼 끝난 시각의 분이 시작 시각의 분보다 큰 경우만 생각했다. 13:50 - 14:00 처럼 끝난 시각의 분이 더 작은 경우도 고려해야 한다. 나름 노력한 점 주어진 input을 의미 있는 자료구조로 만들기 위해 Map을 사용했다. 값을 한번에 뽑아오는 게 편해서 Map을 썼는데 이 문제에서는 딱히 그런 작업을 할 일이 없어서 그냥 객체로 사용했어도 됐을 것 같다. 근데 아직 미숙해서 코드가 너무 지저분하다. 자료구조 만들 때도 함수를 만들어서 썼어야 했는데 하다가 너무 짱나서 그냥 막 써버렸다. 😅 배운 점 이렇게 input을 받아 사용 가능한 데이터로 처
문제 바로가기 문제에서 예외 케이스까지 친절하게 알려줬고 로직 자체는 어렵지 않았는데, LRU 알고리즘에 대해 알아야 풀 수 있는 문제였다. LRU 알고리즘 캐시(페이지) 교체 알고리즘 중 하나로, Least Recently Used의 약자이다. 새로운 데이터가 발생했을 때, 가장 오래전에 사용된 데이터를 제거하고 새로운 데이터를 삽입하는 알고리즘. 새로운 데이터가 들어온 경우 1-1. 캐시에 넣어준다. 1-2. 캐시가 가득차있다면, 가장 오래된 데이터를 제거하고 넣어준다. 존재하는 데이터가 들어온 경우 2-1. 해당 데이터를 꺼낸 뒤, 2-2. 가장 최근 데이터 위치로 보내준다. queue 알고리즘을 사용하면 쉽게 구현할 수 있다. 설계 ![](https://images.velog.io/
문제 바로가기 설계 코드 풀이 방법 > 시작 전에! >- 원본 배열을 수정하지 않기 위함이기도 하고, 또한 문제에서 주어진 board에는 문자열로 들어있기 때문에 문자열을 한글자씩 떨어뜨려 2차원 배열을 새로 만들어 문제를 해결한다. > - 4블록이 완성되어 터진 아이템은 그 자리의 글자를 숫자 0으로 바꾼다. 함수 checkSameItems 현재 아이템이 0이면 패스, 현재 아이템과 다음 아이템이 같은지 우선 확인하고, 같으면 아래 두 아이템과 같은지 확인. 해당 인덱스 4개를 temp 배열에 넣는다. 중복은 크게 신