본문 바로가기

카카오 블라인드 193

2019 Kakao blind 42894 - 블록게임(배열, 구현) c++ 풀이 - 6번 매칭점수 문제보다 더 쉬운 문제 같다. 맵의 모든 범위를 블록 사이즈인 2*3, 3*2 범위로 탐색하면서 위에서 블록을 떨궜을 때 직사각형을 만들 수 있는지를 계속 체크해나가는 식으로 문제를 풀었다. 블록 모양이 정해져있어서 추가된 블록 갯수가 2개여야만 직사각형이 만들어지는 조건을 이용해서 쉽게 풀 수 있다. #include #include using namespace std; vector Board; bool canFill(int r, int c) { // 행 검사 for(int i = 0; i < r; ++i) { if(Board[i][c] != 0) return false; // 위에 모두 빈칸이여야 } return true; } bool find(int sr, int sc, int h,.. 2021. 9. 6.
2019 Kakao blind 42891 - 무지의 먹방 라이브(배열 순회, 우선순위큐) c++ 풀이 https://programmers.co.kr/learn/courses/30/lessons/42891 코딩테스트 연습 - 무지의 먹방 라이브 programmers.co.kr - 일단 효율성 테스트 조건이 굉장히 빡세므로(k가 20조) 복잡도를 낮추기 위한 logN 알고리즘을 사용할 것을 가정에 두고 문제를 읽어내려갔다. - 주어진 food_times 벡터에서 가장 작은 소요시간을 가진 음식을 소거시켜나가는 사이클을 돌리는 식으로 문제를 풀었다. 여기서 가장 작은 소요시간을 가진 음식을 남은 시간 k보다 남은 음식을 가지고 사이클 한바퀴를 도는 시간이 길어서 k초 전에 사이클이 끝나는 경우가 나올 때까지 다 먹은 음식을 소거시켜 나가야된다. 그래서 빠르게 최소소요시간을 찾을 수 있게 최소힙을 이용하였다. .. 2021. 9. 6.
2019 Kakao blind 42888 - 오픈채팅방(문자열 파싱, 구현) c++ 풀이 https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr - 해쉬맵으로 들어온 유저, 아이디를 바꾼 유저를 계속 업데이트 해주고, 들어오고 나간 결과값 스트링 벡터를 만들어서 리턴해주면 된다. - stringstream은 c++로 문자열 파싱문제를 푸는 데 있어서 구세주다.. strtok 방식과 함께 익혀두면 좋다. #include #include #include #include #include using namesp.. 2021. 9. 6.