
2019 카카오 개발자 겨울 인턴십 인형뽑기 게임을 실행했을 때 총 몇개의 캐릭터가 없어지는지 구하는 문제입니다. board배열에서 캐릭터를 뽑습니다. (해당 캐릭터는 board배열에서 지워줍니다.) 뽑힌 캐릭터를 배열에 넣고 이전 값과 비교해서 같으면 두개를 지우면서 결과값에 2를 더해줍니다. function solution(board, moves) { let answer = 0; let stack = []; let index = 1; let x, y; let height = []; for(let i=0; i

2021 카카오 채용연계형 인턴십 문자를 숫자로 변환하는 문제입니다. var num = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]; var size = [4, 3, 3, 5, 4, 4, 3, 5, 5, 4]; 숫자와 숫자의 길이에 해당하는 배열을 만들어서 단어와 매칭되는게 있는지 확인합니다. 있으면 해당 숫자를 결과값에 추가해주고 사이즈 -1만큼 이동합니다. 없다면 문자가 아닌 숫자가 있는 경우이므로 숫자를 결과값에 추가합니다. 반복작업이 완료되면 해당 결과값을 반환합니다. function solution(s) { var num = ["zero", "one", "two", "three", "four", ..

2019 카카오 개발자 겨울 인턴십 제재 아이디를 통해서 만들 수 있는 사용자 아이디의 개수를 구하는 문제입니다. 제재 아이디를 통해서 가능한 아이디를 매칭해줍니다. ex) - userId - abcde aaaaa aaaccc aacde - bannedId - **cde ***** - possibleBid - **cde = {abcde, aacde} ***** = {abcde, aaaaa, aacde} 1. 재귀를 통해서 매칭된 아이디들을 조합이 가능한 형태로 만들어줍니다. (아이디는 최대 8개이므로 비트를 사용해주었습니다 (2^8 = 256)) 2. 재귀를 통해서 비트값을 쌓아가고 같은 비트가 들어오면 가지치기를 해주었습니다. 3. 제재하는 배열의 크기만큼 비트를 쌓았으면 해당 비트를 true로 만들어..

2018 KAKAO BLIND RECRUITMENT 셔틀버스를 타는데 가장 늦게 나가서 기다리는 시간을 구하는 문제입니다. timetable을 정렬한 후 버스가 오는 시간에 맞춰서 차례대로 넣어줍니다. 마지막 버스가 왔을 때 모든 사람이 가득 찬 경우 - 마지막 사람 -1분을 출력합니다. 그 외에는 마지막 버스가 오는 시간을 출력해줍니다. #include #include #include #include #include using namespace std; int convert(int time, int num, string type) { if(type == "plus"){ if((time % 100) + num >= 60){ time += 100; time += (((time % 100) + num) % ..

2021 카카오 채용연계형 인턴십 거리두기가 지켜지고 있는지 확인하는 문제입니다. P가 있는곳에서 BFS를 통해 2칸을 확인합니다. 2칸안에 P가 존재하면 거리두기가 지켜지지 않은 경우입니다. #include #include #include #include #include using namespace std; int result; vector v; vector visit; vector falseVisit(5, vector(5, false)); queue q; vector solution(vector places) { int y, x, c; vector temp; vector answer; for(int i=0; i

2018 KAKAO BLIND RECRUITMENT (2018 카카오 블라인드 채용 문제) 1초에 가장 많은 처리를 한 횟수를 구하는 문제입니다. 끝나는 시간을 기준으로 정렬합니다. 기준시간의 끝나는 시간 + 1초보다 (기준시간 + i)시간의 시작 시간이 더 작으면 카운트합니다. 모든 시간을 기준으로 위의 작업을 해준 다음 카운트의 개수가 가장 큰 값을 출력해줍니다. #include #include #include #include #include using namespace std; vector split(string str, char Delimiter) { istringstream iss(str); string buffer; vector result; while (getline(iss, buffer, ..

2020 카카오 인턴 키패드를 누르는데 규칙에 따라 순차적으로 어떤 손으로 키패드를 누르게 되는지 찾는 문제입니다. 왼쪽 (1, 4, 7)의 경우 왼손의 위치를 변경하고 "L"을 추가합니다. 오른쪽 (3, 6, 9)의 경우 오른손의 위치를 변경하고 "R"을 추가합니다. 가운데 (2, 5, 8, 0)의 경우 왼손과 오른손의 위치에서 거리를 계산합니다. 거리가 같다면 hand 변수에 따라서 왼손 또는 오른손으로 처리해줍니다. 가운데로 이동하였을 경우 해당 손이 가운데 위치하다는 것을 표시하기위해 bool형태의 변수를 사용하였습니다. 가운데일 경우 거리 -1로 계산하게 하였습니다. function solution(numbers, hand) { var answer = ""; var keypad = [ ["1",..

각 프로그래밍 언어에 점수를 부여햇 어떤 직업군에서 가장 높은 점수를 얻었는지 찾는 문제입니다. function solution(table, languages, preference) { let lan = ["JAVA", "JAVASCRIPT", "C", "C++", "C#", "SQL", "PYTHON", "KOTLIN", "PHP"]; let score = [0, 0, 0, 0, 0, 0, 0, 0, 0]; let data_size; let prefer_field; let prefer_score = 0; let max_score = 0; let answer = ''; languages.map((input_lan, index) => { for(let i=0; i { let data = column.spl..