알고리즘
-
[프로그래머스] 합승 택시 요금 / 2021 KAKAO BLIND RECRUITMENT - JAVA알고리즘/프로그래머스 2021. 9. 14. 22:16
🖇️ 문제 링크 코딩테스트 연습 - 합승 택시 요금 밤늦게 귀가할 때 안전을 위해 항상 택시를 이용하던 무지는 최근 야근이 잦아져 택시를 더 많이 이용하게 되어 택시비를 아낄 수 있는 방법을 고민하고 있습니다. "무지"는 자신이 택시를 이용할 때 동료인 어피치 역시 자신과 비슷한 방향으로 가는 택시를 종종 이용하는 것을 알게 되었습니다. https://programmers.co.kr/learn/courses/30/lessons/72413 ⌨️ 코드 import java.util.*; class Solution { final int INF = (int)1e8; public int solution(int n, int s, int a, int b, int[][] fares) { int[][] adj = new..
-
[프로그래머스] 순위 검색 / 2021 KAKAO BLIND RECRUITMENT - JAVA알고리즘/프로그래머스 2021. 9. 14. 22:16
🖇️ 문제 링크 코딩테스트 연습 - 순위 검색 카카오는 하반기 경력 개발자 공개채용을 진행 중에 있으며 현재 지원서 접수와 코딩테스트가 종료되었습니다. 이번 채용에서 지원자는 지원서 작성 시 아래와 같이 4가지 항목을 반드시 선택하도록 하였습니다. 코딩테스트 참여 개발언어 항목에 cpp, java, python 중 하나를 선택해야 합니다. 지원 직군 항목에 backend와 frontend 중 하나를 선택해야 합니다. https://programmers.co.kr/learn/courses/30/lessons/72412 ⌨️ 코드 import java.util.*; class Solution { public int[] solution(String[] info, String[] query) { // Map m..
-
[프로그래머스] 메뉴 리뉴얼 / 2021 KAKAO BLIND RECRUITMENT - JAVA알고리즘/프로그래머스 2021. 9. 14. 22:16
🖇️ 문제 링크 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 새로운 메뉴를 제공하기로 결정했습니다. 어떤 단품메뉴들을 조합해서 코스요리 메뉴로 구성하면 좋을 지 고민하던 "스카피"는 이전에 각 손님들이 주문할 때 가장 많이 함께 주문한 단품메뉴들을 코스요리 메뉴로 구성하기로 했습니다. https://programmers.co.kr/learn/courses/30/lessons/72411 ⌨️ 코드 import java.util.*; class Solution { Map[] mArr; int[] max; char[] pick; public S..
-
[프로그래머스] 신규 아이디 추천 / 2021 KAKAO BLIND RECRUITMENT - JAVA알고리즘/프로그래머스 2021. 9. 14. 22:16
🖇️ 문제 링크 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. https://programmers.co.kr/learn/courses/30/lessons/72410 ⌨️ 코드 class Solution { public String solution(String new_id) { // 1단..
-
[프로그래머스] 블록 이동하기 / 2020 KAKAO BLIND RECRUITMENT - JAVA알고리즘/프로그래머스 2021. 9. 10. 13:20
🖇️ 문제 링크 코딩테스트 연습 - 블록 이동하기 로봇개발자 "무지"는 한 달 앞으로 다가온 "카카오배 로봇경진대회"에 출품할 로봇을 준비하고 있습니다. 준비 중인 로봇은 크기의 로봇으로 "무지"는 "0"과 "1"로 이루어진 크기의 지도에서 크기인 로봇을 움직여 (N, N) 위치까지 이동 할 수 있도록 프로그래밍을 하려고 합니다. 로봇이 이동하는 지도는 가장 왼쪽, 상단의 좌표를 (1, 1)로 하며 지도 내에 표시된 숫자 "0"은 빈칸을 "1"은 벽을 나타냅니다. https://programmers.co.kr/learn/courses/30/lessons/60063 📝 문제 분석 평범한 BFS 문제이지만 생각해야 하는 부분이 많았습니다. 방문 체크를 할 때 Set을 통한 Robot(point, point)..
-
[프로그래머스] 외벽 점검 / 2020 KAKAO BLIND RECRUITMENT - JAVA알고리즘/프로그래머스 2021. 9. 10. 13:20
🖇️ 문제 링크 코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 "스카피" 는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하는 도중에 주기적으로 외벽의 상태를 점검해야 할 필요가 있습니다. 레스토랑의 구조는 완전히 동그란 모양이고 외벽의 총 둘레는 n미터이며, 외벽의 몇몇 지점은 추위가 심할 경우 손상될 수도 있는 취약한 지점들 이 있습니다. https://programmers.co.kr/learn/courses/30/lessons/60062 📝 문제 분석 레스토랑의 구조가 원형이기 때문에 끝과 처음이 연결되어 있는 구조입니다. 이것을 선형으로 만들어주기 위해 weak = [1, 5, 6, 10]라..
-
[프로그래머스] 가사 검색 / 2020 KAKAO BLIND RECRUITMENT - JAVA알고리즘/프로그래머스 2021. 9. 10. 13:20
🖇️ 문제 링크 코딩테스트 연습 - 가사 검색 친구들로부터 천재 프로그래머로 불리는 "프로도"는 음악을 하는 친구로부터 자신이 좋아하는 노래 가사에 사용된 단어들 중에 특정 키워드가 몇 개 포함되어 있는지 궁금하니 프로그램으로 개발해 달라는 제안을 받았습니다. 그 제안 사항 중, 키워드는 와일드카드 문자중 하나인 '?'가 포함된 패턴 형태의 문자열을 뜻합니다. 와일드카드 문자인 '?'는 글자 하나를 의미하며, 어떤 문자에도 매치된다고 가정합니다. https://programmers.co.kr/learn/courses/30/lessons/60060?language=java 📝 문제 분석 만약 특별한 방법 없이 완전탐색으로 답을 구하고자 한다면 O(가사 개수 * 쿼리 개수 * 쿼리 길이) 정도의 시간 복잡도..
-
[프로그래머스] 기둥과 보 설치 / 2020 KAKAO BLIND RECRUITMENT - JAVA알고리즘/프로그래머스 2021. 9. 10. 13:20
🖇️ 문제 링크 코딩테스트 연습 - 기둥과 보 설치 빙하가 깨지면서 스노우타운에 떠내려 온 "죠르디"는 인생 2막을 위해 주택 건축사업에 뛰어들기로 결심하였습니다. "죠르디"는 기둥과 보를 이용하여 벽면 구조물을 자동으로 세우는 로봇을 개발할 계획인데, 그에 앞서 로봇의 동작을 시뮬레이션 할 수 있는 프로그램을 만들고 있습니다. 프로그램은 2차원 가상 벽면에 기둥과 보를 이용한 구조물을 설치할 수 있는데, 기둥과 보는 길이가 1인 선분 으로 표현되며 다음과 같은 규칙을 가지고 있습니다. https://programmers.co.kr/learn/courses/30/lessons/60061 📝 문제 분석 기둥 → 바닥 위에 있거나 보의 한쪽 끝 부분 위에 있거나, 또는 다른 기둥 위에 있어야 함 보 → 한쪽..