구현

    [cpp] 프로그래머스 - 신규 아이디 추천 (2021 KAKAO BLIND RECRUITMENT)

    [cpp] 프로그래머스 - 신규 아이디 추천 (2021 KAKAO BLIND RECRUITMENT)

    🔥 난이도 Level1 📝 문제설명 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. "네오"는 다음과 같이 7단계의 순차적인 처리 과정을 통해..

    [자바] 프로그래머스 - [1차] 프렌즈4블록 (2018 KAKAO BLIND RECRUITMENT)

    [자바] 프로그래머스 - [1차] 프렌즈4블록 (2018 KAKAO BLIND RECRUITMENT)

    코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr 📝 문제 설명 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2 × 2 형태로 4개가 붙어있을 경우 사라지면서 점수를 얻는 게임이다. 만약 판이 위와 같이 주어질 경우, 라이언이 2 × 2로 배치된 7개 블록과 콘이 2×2로 배치된 4개 블록이 지워진다. 같은 블록은 여러 2×2에 포함될 수 있으며, 지워지는 조건에 만족하는 2×..

    [자바] 프로그래머스 - 피로도 (Level2)

    [자바] 프로그래머스 - 피로도 (Level2)

    🔗 문제 링크 코딩테스트 연습 - 피로도 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던 programmers.co.kr 📝 문제 설명 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"가 있습니다. "최소 필요 피로도"는 해당 던전을 탐험하기 위해 가지고 있어야 하는 최소한의 피로도를 나타내며, "소모 피로도"는 던전을 탐험한 후 소모되는 피로도를 나타냅니다. 예를 들어 "..

    [자바] 프로그래머스 - 카펫 (Level 2)

    [자바] 프로그래머스 - 카펫 (Level 2)

    🔗 문제 링크 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 📝 문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 re..

    [c++] 프로그래머스 - 빛의 경로 사이클 (Level 2)

    [c++] 프로그래머스 - 빛의 경로 사이클 (Level 2)

    🔗 문제 링크 코딩테스트 연습 - 빛의 경로 사이클 각 칸마다 S, L, 또는 R가 써져 있는 격자가 있습니다. 당신은 이 격자에서 빛을 쏘고자 합니다. 이 격자의 각 칸에는 다음과 같은 특이한 성질이 있습니다. 빛이 "S"가 써진 칸에 도달한 경우, 직진 programmers.co.kr 📂 분류 완전 탐색 그래프 탐색 시뮬레이션 💡 풀이 문제를 처음 읽었을 때 이해가 안 돼서 문제 예시를 손으로 직접 해보니깐 이해가 됐다. 방문처리를 방향이 존재하기 때문에 방향까지 넣어줄 3차원 배열을 쓰는 게 가장 핵심이다. 모든 방향에 대해 BFS를 써서 탐색하면 된다. 방향 전환 아래와 같이 구현 L일 때 방향 전환 (dir + 1) % 4 R일 때 방향 전환 dir == 0 ? 3 : dir - 1 사이클 처리..

    [c++] 프로그래머스 - 신고 결과 받기 (2022 KAKAO BLIND RECRUITMENT)

    [c++] 프로그래머스 - 신고 결과 받기 (2022 KAKAO BLIND RECRUITMENT)

    🔗 문제 링크 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 📂 분류 문자열, 구현, 자료구조 💡 풀이 카카오 코테에서 자주 출제되는 문자열 처리 후 구현하는 문제이다. 우선 id를 매핑하기 위해 map이 필요하다. 그리고 유저 ID와 유저가 신고한 ID를 저장하는 자료구조를 map과 2차원 vector를 고민하다가 2차원 vector로 하기로 했다. 한 유저가 동일한 유저에 대한 신고 횟수는 1회이기 때문에 vector로 선언을 하고 report를 공백 분리한 후 유저 ID와 유저가 신고한 ID 테..