CodingTest/Programmers

    [카카오] k진수에서 소수 개수 구하기 (java)

    [카카오] k진수에서 소수 개수 구하기 (java)

    문제링크 https://programmers.co.kr/learn/courses/30/lessons/92335# 코딩테스트 연습 - k진수에서 소수 개수 구하기 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소 programmers.co.kr 문제풀이 👨🏻‍💻 핵심 스킬 👨🏻‍💻 소수, 재귀 n으로 주어진 숫자를 k진수로 변경한 후 0을 오른쪽 또는 왼쪽으로 가지고 있는 수들이 소수인지 판단하여 개수를 구해주는 문제이다. 10진수인 n을 k진수로 변경하는 방법은 재귀와 나누기 그리고 %연산을 활용하여 만들 수 있다. %연산을 하여 구한 m..

    [카카오]  주차 요금 계산 (java)

    [카카오] 주차 요금 계산 (java)

    문제링크 https://programmers.co.kr/learn/courses/30/lessons/92341 코딩테스트 연습 - 주차 요금 계산 [180, 5000, 10, 600] ["05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT"] [14600, 34400, 5000] programmers.co.kr 문제풀이 👨🏻‍💻 핵심 스킬 👨🏻‍💻 구현, Map 주차요금계산 문제는 입력으로 들어오는 주차에 대한 record정보로 하루동안 차량의 출입 여부로 시간을 계산하여 그 날동안 ..

    [카카오] 단체사진찍기 (java)

    [카카오] 단체사진찍기 (java)

    문제링크 https://programmers.co.kr/learn/courses/30/lessons/1835 코딩테스트 연습 - 단체사진 찍기 단체사진 찍기 가을을 맞아 카카오프렌즈는 단체로 소풍을 떠났다. 즐거운 시간을 보내고 마지막에 단체사진을 찍기 위해 카메라 앞에 일렬로 나란히 섰다. 그런데 각자가 원하는 배치가 모두 programmers.co.kr 문제풀이 👨🏻‍💻 핵심 스킬 👨🏻‍💻 브루트포스 순열 카카오 프렌즈 캐릭터 8명이 원하는 순서대로 사진을 찍을 수 있는 횟수를 구하는 문제이다. 캐릭터가 순서대로 서는 경우의수는 8!이며 최대로 들어올 수 있는 조건이 100개이다. 따라서 최악의 경우 $O(8!*100)$의 시간이 걸리게 된다. 따라서, 브루트포스로 문제를 해결할 수 있다. 순열로 문..

    [카카오] 오픈채팅방 (java)

    [카카오] 오픈채팅방 (java)

    문제링크 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 문제풀이 👨🏻‍💻 핵심 스킬 👨🏻‍💻 Map, 구현 카카오 오픈채팅방의 입장과 퇴장의 로그를 리턴해주는 문제이다. 닉네임을 변경하는 경우에는 과거의 입장 및 퇴장의 닉네임도 변경해주어야 한다. 닉네임을 변경하는 방법은 다시 입장시 혹은 방 안에서 변경이 가능하다. 닉네임은 Map을 활용하여 id와 닉네임을 매핑시켜주었다. 모든 record를 확인하여 출력해주어야할 log는 가변배열인 ArrayList를 사용해서 넣어주었고, 닉네임이 변경될 수 있는 경우..

    [카카오] 신고 결과 받기 (java)

    [카카오] 신고 결과 받기 (java)

    문제링크 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 문제풀이 👨🏻‍💻 핵심 스킬 👨🏻‍💻 Set(집합) 신고 결과 받기 문제는 유저들이 신고를 하는 정보를 확인하고 신고를 당한 횟수가 k 이상일 경우 정지를 주게 되는데, 그 때 정지를 받은 유저를 신고한 유저에게 알람을 준다면 알람을 받을 횟수를 확인하는 문제이다. 이 때 한 유저가 동일한 사람을 중복으로 신고하면 한번으로 처리를 해야한다. 이 조건을 만족시키기 위하여 나는 집합을 사용하여 구현하였다. 집합은 데이터를 중복없이 한개씩만 가지고 있..

    [카카오] 카카오 프렌즈 컬러링북 (java)

    [카카오] 카카오 프렌즈 컬러링북 (java)

    문제링크 https://programmers.co.kr/learn/courses/30/lessons/1829 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 문제풀이 👨🏻‍💻 핵심 스킬 👨🏻‍💻 브루트 포스 문제에서는 영역의 개수와, 영역의 최대값을 물어보고 있다. 영역은 색칠을 해야하는 부분의 상하좌우 중 연결된 동일한 색상이어야 하며 0의 경우색칠을 하지 않는다. 따라서 나는 체크하는 배열을 만들어, 체크가 안된 부분 중 0이 아닌 부분을 체크하며 영역을 구분지었다. $n*m$크기의 배열을 모두 돌면서 아직..