Algorithm

    [자바] 프로그래머스 - [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)

    🔗 문제 링크 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 📝 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. ⚠️ 제한사항 number는 1자리 이상, 1,000,000자리 이하인 숫자입니다. k는 1 이상 number의 자릿수..

    [c++] 백준(BOJ)14888 - 연산자 끼워넣기

    [c++] 백준(BOJ)14888 - 연산자 끼워넣기

    🔗 문제 링크 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 📂 분류 순열 구현 💡 풀이 이 문제는 풀이 방식이 여러 가지 존재할 것 같은데 나는 순열을 통해 풀었다. 연산자 개수를 입력 받으면서 op라는 vector에 연산자 개수만큼 아래와 같이 연산자를 저장한다. 연산자가 +일 경우 0 연산자가 -일 경우 1 연산자가 *일 경우 2 연산자가 /일 경우 3 저장을 한 후 next_permutation함수를 이용해 순열을 구하고 우선 순위가 없기 때문에 ..

    [자바] 프로그래머스 - 카펫 (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 사이클 처리..