알고리즘 문제/[프로그래머스] 32

[프로그래머스] 셔틀 버스

2018 카카오 채용 코딩 테스트 문제입니다. 코딩테스트 연습 - [1차] 셔틀버스 10 60 45 ["23:59","23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59"] "18:00" programmers.co.kr 문제 확인 구현 문제입니다. 풀이 문제에서 가장 중요한 요소는 마지막 버스에 자리의 여부입니다. 마지막 버스에 자리가 남는 경우 : 마지막 버스의 도착 시간에 탑승하면 됩니다. 마지막 버스에 자리가 없는 경우 : 기다리는 사람들 중 m 번째 사람보다 1분 전에 도착하면 됩니다. timetable을 읽으면서 ..

[프로그래머스] 프렌즈4블록

2018 카카오 채용 코딩 테스트 문제입니다. 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr 문제 확인 구현 문제입니다. 풀이 3개의 과정을 정확하게 나누어 구현하여야 합니다. 지울 블록들을 찾습니다. : 조건문 찾은 블록들을 한 번에 지웁니다. : visited 배열 활용 빈 공간들을 블록을 떨어뜨려 채웁니다. : 인덱싱 3번 단계에서 메모리 접근 시간을 빠르게 하기 위해 배열을 전치시켜 떨어뜨릴 때 ary[i][0~j] 한 줄에서 해결할 수 있도록 합니다. 또한 0번 인덱스부터 접..

[프로그래머스][JAVA] 뉴스 클러스터링

2018 카카오 채용 코딩 테스트 문제입니다. 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 문제 확인 Map 컨테이너 활용 문제입니다. 풀이 대소문자 구분을 하지 않기 때문에 처음 입력받은 두 문자열을 toLowerCase() 메서드를 통해 모두 소문자로 만들어줍니다. Map 컨테이너를 통해 다중집합 원소들을 처리할 수 있습니다. Map 로 선언하고 해당 원소가 문자열에서 몇 번 등장하였는지 기록합니다. 등장 횟수를 통해 합집합, 교집합 원소의 개수를 알아낼 수 있습니다. 2개의 ma..

[프로그래머스] 무지의 먹방 라이브

2019 카카오 채용 코딩 테스드 문제입니다. 코딩테스트 연습 - 무지의 먹방 라이브 programmers.co.kr문제 확인 알고리즘을 사용하여 푸는 것보다 계산식과 몇 개의 루프 문을 통해 푸는 것이 훨씬 성능이 좋습니다. 풀이 위와 같은 식으로 모든 루프를 처리하면 정확도 테스트도 통과하기 어렵습니다. 배열에 접근, 원소 수정과 함께 모든 루프를 돌게 되므로 O(n^2)이 되기 때문입니다. 따라서 각 루프 문을 압축하여 가능한 루프를 한 번에 처리해야 합니다. food_times 배열의 길이를 length로 두고 k와 비교하여 몇 번의 루프를 돌고 난 후 몇 번을 움직이는지 확인하여 풉니다.루프 횟수 : k / length남은 움직임 횟수 : k % length이를 통하여 루프 횟수 loop 보다 ..

[프로그래머스] 매칭 점수

2019 카카오 채용 코딩 테스트 문제입니다. 코딩테스트 연습 - 매칭 점수 매칭 점수 프렌즈 대학교 조교였던 제이지는 허드렛일만 시키는 네오 학과장님의 마수에서 벗어나, 카카오에 입사하게 되었다. 평소에 관심있어하던 검색에 마침 결원이 발생하여, 검색개발팀 programmers.co.kr 문제 확인 스트링 처리 문제입니다. 풀이 정규 표현식을 사용하여 푸는 것이 푸는 시간 단축에 도움이 됩니다. c++의 를 사용해 풀어봅니다. 씹어먹는 C++ - modoocode.com regex::optimize를 이용하여 성능 개선을 할 수 있습니다. 웹사이트 이름 처리 : ]*content=\"https://(\\S*)\"[^>]*/> [^>]* : 어트리뷰트 content가 나오기 이전에 '>'가 나오면 무시합..

[프로그래머스] 길 찾기 게임

2019 카카오 채용 코딩 테스트 문제입니다. 코딩테스트 연습 - 길 찾기 게임 [[5,3],[11,5],[13,3],[3,5],[6,1],[1,3],[8,6],[7,2],[2,2]] [[7,4,6,9,1,8,5,2,3],[9,6,5,8,1,4,3,2,7]] programmers.co.kr 문제 확인 이진트리 문제입니다. 풀이 포인터를 활용하는 것보다 인덱싱을 사용하는 것이 더 빠르므로 이를 사용합니다. 가로의 값 y는 중복될 수 없으므로 이를 이용하여 삽입할 노드의 y값이 현재 노드 y값보다 작으면 왼쪽, 크면 오른쪽 자식 노드로 넘기며 선택 위치가 빈칸인 경우 해당 위치에 삽입합니다. 프리오더, 포스트 오더를 한번에 재귀를 사용하지 않고 구현하기 어려우므로 간단하게 재귀 함수를 이용해 순회합니다. 코..

[프로그래머스] 블록 게임

2019 카카오 채용 코딩 테스트 문제입니다. 코딩테스트 연습 - 블록 게임 [[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,4,0,0,0],[0,0,0,0,0,4,4,0,0,0],[0,0,0,0,3,0,4,0,0,0],[0,0,0,2,3,0,0,0,5,5],[1,2,2,2,3,3,0,0,0,5],[1,1,1,0,0,0,0,0,0,5]] 2 programmers.co.kr 문제 확인 구현 문제입니다. 풀이 블록을 3x3 크기기에서 경우의 수를 두어 풉니다. 1 2 3 4 5 6 7 8 9 위와 같은 배치에서 문제에서 주어진 블록의 형태는 ㄴ, ㅗ 를 뒤집거나 회전하여 만들..

[프로그래머스] 후보키

2019 카카오 채용 코딩 테스트 문제입니다. 코딩테스트 연습 - 후보키 [["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.co.kr 문제 확인 데이터베이스의 후보키 특성 유일성, 최소성 특성을 사용하는 문제입니다. set 컨테이너를 통해 유일성, bit 표현식을 통해 최소성을 검사할 수 있습니다. 풀이 bit 표현식을 통해 사용한 칼럼을 표시합니다. 0101 : 0, 2번째 칼럼을 사용, 0011 : 0, 1번째 칼럼 사용 ..

[프로그래머스] 실패율

2019 카카오 채용 코딩 테스트 문제입니다. 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 문제 확인 prefix sum 활용 문제입니다. 풀이 입력받은 스테이지를 읽으면서 해당 스테이지에 몇 명이 있는지 기록합니다. 그 후 역순으로 읽어가면서 실패율을 구합니다. 실패율 = ary[i] / SUM( ary[i], ary[i+1], ... ary[N]) 실패율을 전부 구하고 나면 실패율 순서대로 정렬하고 인덱스를 따로 추출하여 출력합니다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15..