본문 바로가기
반응형

Algorithm73

[프로그래머스] 메뉴 리뉴얼(LV.2) by javascript - 2021 KAKAO BLIND RECRUITMENT ▷ 문제 : 2021 KAKAO BLIND RECRUITMENT - 메뉴 리뉴얼 LV.2 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr ▷ 해결 날짜 : 2022.03.14 ▷ 소요 시간 : 48분 ▷ 풀이 과정 : 문제를 한차례 읽어보니 이 문제는 조합과 해시를 가지고 풀 수 있겠다는 느낌이 들어, 그 느낌 그대로 풀이를 진행하였다. 여기서 알아둬야 할 점이 몇 개 있다. (개인적으로 중요하게 생각한 부분들) 1. 주문이 들어온 orders 배열과, 주인장이 만들고 싶은 코스요리의 구성 메뉴 개수 cours.. 2022. 3. 14.
[프로그래머스] k진수에서 소수 개수 구하기(LV.2) by javascript - 2022 KAKAO BLIND RECRUITMENT ▷ 문제 : 2022 KAKAO BLIND RECRUITMENT - k진수에서 소수 개수 구하기 LV.2 코딩테스트 연습 - k진수에서 소수 개수 구하기 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소 programmers.co.kr ▷ 해결 날짜 : 2022.03.08 ▷ 소요 시간 : 50분 ▷ 풀이 과정 : 양의 정수 n을 k진수로 바꿨을 때, 변환된 수 안에 조건에 맞는 소수를 찾는 문제이다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소수 오른쪽에만 0이 있고 왼쪽에는 아무것도 없는 경우 0P처럼 소수 왼쪽에만 0이 있고 .. 2022. 3. 13.
[프로그래머스] 괄호 변환(LV.2) by javascript - 2020 KAKAO BLIND RECRUITMENT ▷ 문제 : 2020 KAKAO BLIND RECRUITMENT - 괄호 변환 LV.2 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr ▷ 해결 날짜 : 2022.03.11 ▷ 소요 시간 : 1시간 30분 ▷ 풀이 과정 : 이번에는 좀 특이하게, 문제에서 로직을 전부 알려주고 우리는 그걸 구현하기만 하면 되는 문제였다. 재귀함수를 이용하면 풀 수 있는 문제이며, 재귀함수를 사용하라고 문제에서도 알려주고 있다. 이번 문제는 특이점은 없고 그냥 아래와 같은 로직을 그대로 구현할 수 있는 능력만 있으면 누구나 풀 수.. 2022. 3. 11.
[프로그래머스] 오픈 채팅방(LV.2) by javascript - 2019 KAKAO BLIND RECRUITMENT ▷ 문제 : 2019 KAKAO BLIND RECRUITMENT - 오픈 채팅방 LV.2 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr ▷ 해결 날짜 : 2022.02.11 ▷ 소요 시간 : 1시간 10분 ▷ 풀이 과정 : 채팅방의 출력 메시지를 담아서 반환 시켜주어야 한다. 다른 문제들과 마찬가지로 문제를 우선 이해하고 그다음에 구현을 들어가야만 한다. 우선 주어지는 값은 문자열 배열에 "상태, 아이디, 닉네임" 이 주어진다는것을 파악하고, 몇가지 제한사항을 파악한뒤 문제를 해결해 나갔다. 읽어보니 핵심은.. 2022. 3. 11.
[프로그래머스] 문자열 압축(LV.2) by javascript - 2020 KAKAO BLIND RECRUITMENT ▷ 문제 : 2020 KAKAO BLIND RECRUITMENT - 문자열 압축 LV.2 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr ▷ 해결 날짜 : 2022.03.10 ▷ 소요 시간 : 3시간 ▷ 풀이 과정 : 문제 자체는 크게 어렵지 않았는데, "ababcdcdababcdcd" 이런식의 문자열이 입력됐을 경우 1~N개 단위로 압축하여 가장 짧은 것의 길이를 반환하는게 이 문제의 전부이다. 이번에는 다른 문제와 달리 구현단계에서 좀 지체됐다. 단순하게 생각하여 기준 문자열 (원본 문자열에서 단위.. 2022. 3. 10.
[프로그래머스] 튜플(LV.2) by javascript - 2019 카카오 개발자 겨울 인턴십 ▷ 문제 : 2019 카카오 개발자 겨울 인턴십 - 튜플 LV.2 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr ▷ 해결 날짜 : 2022.03.08 ▷ 소요 시간 : 20분 ▷ 풀이 과정 : 생각보다 간단한 문제이다. 제한사항을 살펴보면 s가 표현하는 튜플의 원소는 1 이상 이라는 조건이 붙어있기 때문에, "{{4,2,3},{3},{2,3,4,1},{2,3}}" 이 조건을 살펴보면 중복되는 녀석들만 제거해주고 사용하면 된다는걸 알 수 있다. 그래서 앞뒤로.. 2022. 3. 10.
[프로그래머스] 후보키(LV.2) by javascript - 2019 KAKAO BLIND RECRUITMENT 원래 알고리즘 문제풀이 관련하여 게시글을 작성할 생각은 없었는데, 그래도 블로그의 개인적인 이유가 나의 성장과정을 보고 싶기 때문이니 이것도 정리하면 좋겠다 싶었다. 후보키 문제를 기준으로 지금까지 해결한 문제와 앞으로 해결할 문제들의 일부분을 계속해서 올릴 생각이다. ▷ 문제 : 2019 KAKAO BLIND RECRUITMENT - 후보키 LV.2 코딩테스트 연습 - 후보키 [["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2 programmers.. 2022. 3. 9.
[알고리즘] 소수 판별하기 - 여러가지 방법의 소수 판별법 by javascript 앞서 "[알고리즘] 소수 찾기 - 에라토스테네스의 체 by javascript" 라는 제목의 소수 찾기 알고리즘을 정리하였는데, 지금 까지 소수 찾기 및 소수 판별에 있어 전부 에라토스테네스의 체 코드를 사용하여 리스트를 뽑고 그 안에 포함되어있는 지를 체크해왔다. 하지만 역시 자바스크립트는 자바스크립트... RangeError: invalid array length 에러가 발생하면 그 방식을 사용할 수 없었다. (당연하게도 소수 찾는 방식으로 사용한걸 단순히 하나의 숫자에 대한 소수 판별에, 사용하는 데에는 제약사항이 있을 수 있다는 걸 간과했다.) 그래서 이제 소수 판별하는 여러가지 방법에 대해 알아보고자 한다. 1. 단순하게 모든 수를 판별하기 const isPrime = (num) => { if(.. 2022. 3. 8.
[알고리즘] 조합, 순열, 중복순열 - 경우의 수 찾기 by javascript (ft. 모든 경우의 수) (이 글로 이해가 안된다면 정말 자세한 내용과 설명은 본문 하단에 링크를 달아뒀으니 해당 블로그 가서 보면 된다. 정말 정리를 잘해놨다.) 완전 탐색 알고리즘의 방식인 조합, 순열, 중복순열 알고리즘에 대해 알아보자. 왜 이 3가지 알고리즘을 동시에 다루냐면 알고리즘 구조가 비슷하기 때문이다. 전체적으로 아래와 같은 형식을 지닌다. 1. 선택하려는 개수를 확인한다. (ex 배열에서 2개의 값으로 이루어진 조합 혹은 순열) 2. 배열의 길이만큼 반복한다. 3. 배열에서 하나의 수를 선택한다. (기준 값) 4. 기준 값을 제외한 나머지 배열을 가지고 다시 1번부터 시작한다. (재귀) 위 방식을 통해 계속해서 재귀를 통해 반복하다보면 순열, 중복순열, 조합을 구할 수 있다. 각 조합, 순열, 중복순열 별 달라.. 2022. 3. 5.
반응형
TOP