본문 바로가기

알고리즘

(69)
[프로그래머스] 광고 삽입 / 2021 KAKAO BLIND RECRUITMENT - JAVA 🔗 문제 링크 [프로그래머스] 광고 삽입 / 2021 KAKAO BLIND RECRUITMENT - JAVA 코딩테스트 연습 - 광고 삽입 시간을 나타내는 HH, H1, H2의 범위는 00~99, 분을 나타내는 MM, M1, M2의 범위는 00~59, 초를 나타내는 SS, S1, S2의 범위는 00~59까지 사용됩니다. 잘못된 시각은 입력으로 주어지지 않습니다. (예: 04:60:24, 11 programmers.co.kr 📝 풀이 과정 100시간을 초로 바꾼다면 360,000으로 순차 탐색이 가능하다는 생각이 들었다. 먼저 계산을 쉽게 하기 위해 모든 시간을 초로 변환하였고, playCnt배열을 만들어 동영상의 시작시간에 + 1을하고 종료 시간에 - 1을 해주었다. 다음으로 전체 배열을 순회하면서 이전..
[프로그래머스] 합승 택시 요금 / 2021 KAKAO BLIND RECRUITMENT - JAVA 🔗 문제 링크 [프로그래머스] 합승 택시 요금 / 2021 KAKAO BLIND RECRUITMENT 코딩테스트 연습 - 합승 택시 요금 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 📝 풀이 과정 모든 정점 간의 거리를 구할 수 있는 플로이드 와샬을 사용했다. 플로..
[프로그래머스] 순위 검색 / 2021 KAKAO BLIND RECRUITMENT - JAVA 🔗 문제 링크 [프로그래머스] 순위 검색 / 2021 KAKAO BLIND RECRUITMENT
[프로그래머스] 메뉴 리뉴얼 / 2021 KAKAO BLIND RECRUITMENT - JAVA 🔗 문제 링크 [프로그래머스] 메뉴 리뉴얼 / 2021 KAKAO BLIND RECRUITMENT 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 📝 풀이 과정 메뉴의 코스의 수가 주어지고, 코스의 수별로 가장 많이 시킨 메뉴 조합을 구하는 문제이다. 주문별로 가능한 2이상의 모든 조합을 구한다 조합된 메뉴의 수를 Map에 넣어가며 개수를 누적한다 위의 아이디어로 구현하였다. 먼저 메뉴의 수대로 모아보기 위해 Map courseMap을 생성하였다. 처음 Integer Key는 '메뉴의 수'이고, 이후로는 메뉴의..
[프로그래머스] 신규 아이디 추천 / 2021 KAKAO BLIND RECRUITMENT - JAVA 🔗 문제 링크 [프로그래머스] 신규 아이디 추천 / 2021 KAKAO BLIND RECRUITMENT 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 카카오계정개발팀에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. 네오에게 주어진 첫 업무는 새로 가 programmers.co.kr 📝 풀이 과정 문제를 보고 정규식을 활용할 수 있는 문제라고 생각해 정규식을 사용하기로 했다. 조건을 차례대로 보면, 1번은 toLowerCase()를 사용해 문자열을 소문자 형태로 변경이 가능하다 2번부터 4번까지는 replaceAll(regex, replacement)를 사용했는데 regex에 변경하고자하는 정규식을 입력하고 replacement에 변경..
[프로그래머스] 파일명 정렬 / 2018 KAKAO BLIND RECRUITMENT(3차) - JAVA 🔗 문제 링크 [프로그래머스] 파일명 정렬 / 2018 KAKAO BLIND RECRUITMENT(3차) 코딩테스트 연습 - [3차] 파일명 정렬 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램 programmers.co.kr 📝 풀이 과정 파일명의 문자열을 파싱하여 head, num을 추출한 뒤 정렬해야했기 때문에 문자열을 패턴으로 파싱할 수 있는 Pattern, Matcher 클래스를 사용하였다.(참고: [Java] Pattern, Matcher Class로 정규식 활용하기) Pattern pattern = Pattern.compile("(?\\D+)(?\\d+)(...
[프로그래머스] n진수 게임 / 2018 KAKAO BLIND RECRUITMENT(3차) - JAVA 🔗 문제 링크 [프로그래머스] n진수 게임 / 2018 KAKAO BLIND RECRUITMENT(3차) 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0 programmers.co.kr 📝 풀이 과정 n진수로 이루어진 숫자를 차례대로 붙인 문자열을 구한 뒤 튜브가 말할 순서마다 뽑아서 붙이는 방식을 사용하였다. 구할 개수 t개에 인원은 총 m명이므로 구해야 할 숫자는 t * m보다 작다는 것을 알 수 있기 때문에 1부터 t*m까지의 숫자를 n진수로 변환한 뒤 문자열에 붙이기위해 String.toString(int n, int..
[프로그래머스] 압축 / 2018 KAKAO BLIND RECRUITMENT(3차) - JAVA 🔗 문제 링크 [프로그래머스] 압축 / 2018 KAKAO BLIND RECRUITMENT(3차) 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] programmers.co.kr 📝 풀이 과정 문자열을 반복해서 사전에 넣고 찾는 작업을 해야하고, String(문자열)과 int(색인 번호)를 동시에 저장할 수 있는 Map을 사용하기로 했다. 길이가 1인 문자열을 모두 넣어주기 위해 반복문을 돌며 Map.put 해주었고, 입력 문자열을 하나씩 끊어 반복문을 돌며 탐색하였다. map.containsKey를 통해 만약 현재 key가 사전에 없을 때까지 뒤에 덧붙이는 방식..