문제 풀이
[프로그래머스] 2020 KAKAO BLIND RECRUITMENT - "문자열 압축" (Java)
[프로그래머스] 2020 KAKAO BLIND RECRUITMENT - "문자열 압축" (Java)
2021.09.08https://programmers.co.kr/learn/courses/30/lessons/60057?language=javascript 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 난이도 : Level 2 제가 생각한 로직은 아래와 같습니다. 1. 절반까지만 탐색한다. (절반이 넘어가면 반복되는 문자열이 없기 때문.) 2. 문자열에서 범위를 정하여 각 범위만큼 비교 문자열을 생성한다 (String slice) 3. s 문자열에서 비교 문자열 뒤로 target 문자열을 비교하며 임시 문자열을 만들어..
[프로그래머스] 2020 KAKAO BLIND RECRUITMENT - "괄호 변환" (Java)
[프로그래머스] 2020 KAKAO BLIND RECRUITMENT - "괄호 변환" (Java)
2021.09.07https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 난이도 : Level 2 문제에서 구현 조건이 주어졌기에, 적절한 자료구조를 사용한 구현 능력을 요구하는 문제인 것 같습니다. 카카오는 주로 수학적인 알고리즘 능력을 요하는 것이 아닌, 자료구조를 활용한 구현 능력을 더 중요하게 보는 것 같습니다. 다음과 같은 로직으로 문제를 해결하였습니다. 1. 올바른 괄호 문자열인지 판별하는 함수를 구현할 것. 2. 문제 조건..
[프로그래머스] 2021 KAKAO BLIND RECRUITMENT - "광고 삽입" (Java)
[프로그래머스] 2021 KAKAO BLIND RECRUITMENT - "광고 삽입" (Java)
2021.09.07https://programmers.co.kr/learn/courses/30/lessons/72414 코딩테스트 연습 - 광고 삽입 시간을 나타내는 HH, H1, H2의 범위는 00~99, 분을 나타내는 MM, M1, M2의 범위는 00~59, 초를 나타내는 SS, S1, S2의 범위는 00~59까지 사용됩니다. 잘못된 시각은 입력으로 주어지지 않습니다. (예: 04:60:24, 11 programmers.co.kr 난이도 : Level 3 슬라이딩 윈도우 알고리즘을 활용하여 문제를 해결하였습니다. 이 문제는 의도하는 로직을 떠올리는 것이 관건이라고 생각합니다. String으로 주어진 시간 정보를 초 단위로 환산하는 것은 간단할 수 있지만 이들을 활용하여 탐색을 하는 과정은 고민이 필요한 문제라고 생각합..
[프로그래머스] 2021 KAKAO BLIND RECRUITMENT - "합승 택시 요금" (Java) (dijkstra, floydWarshall)
[프로그래머스] 2021 KAKAO BLIND RECRUITMENT - "합승 택시 요금" (Java) (dijkstra, floydWarshall)
2021.09.07https://programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr 난이도 : Level 3 그래프에서 최단 경로 알고리즘인 플로이드 - 와샬과 다익스..
[프로그래머스] 2021 KAKAO BLIND RECRUITMENT - "순위 검색" (Java)
[프로그래머스] 2021 KAKAO BLIND RECRUITMENT - "순위 검색" (Java)
2021.09.06https://programmers.co.kr/learn/courses/30/lessons/72412 ( 여기까지 하면 정확성은 다 맞출수 있습니다. ) 4. 이분 탐색을 통하여 query에 주어진 점수보다 낮은 점수가 존재하는 index를 start에 저장. - static HashMap map = new HashMap(); Map의 Key 값으로 "-" 표시를 포함한 모든 경우의 String 값을 저장합니다. info 배열의 “java and backend and junior and pizza 150″ 이라는 String을 탐색할 경우, Key 값으로 "----" 부터 "javabackendjuniropizza"까지 총 16가지의 경우의 수가 저장됩니다. ArrayList에는 점수가 저장됩니다. 이미..
[프로그래머스] 2021 KAKAO BLIND RECRUITMENT - "신규 아이디 추천" (Java)
[프로그래머스] 2021 KAKAO BLIND RECRUITMENT - "신규 아이디 추천" (Java)
2021.09.05https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 난이도 : Level1 카카오에서 자주 출제되는 유형인 문자열 다루는 문제입니다. String 클래스의 메소드와 정규표현식을 잘 사용한다면 굉장히 쉽게 풀 수 있는 문제이지만, 정규표현식을 잘 모른다면 시간이 좀 걸릴 것 같습니다. 문제에 주어진 각 단계의 조건에 맞춰서 문제를 해결해 나가면 풀 수 있습니다. 1단계) 소문자로 치환 -> toLowerCa..
[프로그래머스] 2021 KAKAO BLIND RECRUITMENT - "메뉴 리뉴얼" (Javascript)
[프로그래머스] 2021 KAKAO BLIND RECRUITMENT - "메뉴 리뉴얼" (Javascript)
2021.09.02https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 난이도 : Level 2 적절한 자료구조를 활용할 줄 알아야하고 조합 구현 방법과 몇 가지 예외 처리가 존재하는 문제입니다. Level 2 난이도 치고는 요구하는 조건이 많은 문제라고 생각합니다. 제가 생각한 로직은 다음과 같습니다. 1. 각 course의 사이즈 별로 Map 자료 구조를 생성하여 조합을 통해 모든 세트의 경우의 수를 key 값으로 설정하고 해당 ..
[프로그래머스] 2019 KAKAO BLIND RECRUITMENT - "오픈채팅방" (Javascript)
[프로그래머스] 2019 KAKAO BLIND RECRUITMENT - "오픈채팅방" (Javascript)
2021.08.31https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 난이도 : Level 2 적절한 자료구조를 사용하고 배열을 조작할 수 있다면 쉽게 풀 수 있는 문제라고 생각합니다. 제가 생각한 로직은 아래와 같습니다. 1. 처음 배열(record)을 순회할 때, map에 (key ,value) 쌍으로 id와 닉네임을 저장할 것. 2. 두번 째로 배열(record)을 순회할 때, key값에 따라 value를 지정하고 opera..
[프로그래머스] 2020 KAKAO BLIND RECRUITMENT - "문자열 압축" (Javascript)
[프로그래머스] 2020 KAKAO BLIND RECRUITMENT - "문자열 압축" (Javascript)
2021.08.30https://programmers.co.kr/learn/courses/30/lessons/60057?language=javascript 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 난이도 : Level 2 문제를 해결하는 로직을 떠올리는 것은 어렵지 않으나, 구현력에서 일반적인 Level 2 문제보다는 난이도가 있다고 개인적으로 생각합니다. 제가 생각한 로직은 아래와 같습니다. 1. 문자열에서 범위를 정하여 각 범위만큼 문자열을 탐색한다. 2. 정한 범위를 기준으로 앞의 문자 혹은 문자열과 비교하..