algorithm

    [프로그래머스 / C++] 모음 사전

    문제 https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 해당 문제는 최대 연산이 1만 이하인 케이스를 제시하고 있다. (모음 5개를 1에서 5자리 사이로 배치하는 경우 이므로) 그렇기에 DFS로 완전 탐색을 진행하면서 타겟 단어와 서치중인 단어가 같을 경우의 count를 반환하면 정답이 나온다. #include #include #include using namespace std; vector dic = {"A","E","I","O","..

    [프로그래머스 / C++] 피로도

    문제 https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해설 해당 문제는 일정 피로도로 최대한 많은 던전을 들어가는 방법을 찾는 문제이다. 문제의 중요한 조건을 정리하면 아래와 같다. 1. 던전에 들어가기 위해서는 최소 필요 피로도 이상의 피로도가 있어야 한다. 2. 던전에 들어가면 소모 피로도만큼 현재 피로도에서 감소한다. 3. 한 번 들어간 던전은 다시 들어갈 수 없다. 4. 던전의 수는 최소 1개, 최대 8개이다. 위 조건을 확인하면 ..

    [LeetCode] 258. Add Digits

    Given an integer num, repeatedly add all its digits until the result has only one digit, and return it. Example 1: Input: num = 38 Output: 2 Explanation: The process is 38 --> 3 + 8 --> 11 11 --> 1 + 1 --> 2 Since 2 has only one digit, return it. Example 2: Input: num = 0 Output: 0 Constraints: 0 = 1){ val += temp % 10; temp = parseInt(temp/10); } num = val; } return num }; 위 코드와 같이 간단하게 각 자리의 숫..

    [백준]1107번 리모컨

    문제 https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 문제 풀이 필자는 해당 문제를 처음에는 수학적으로 접근을 하였다. 하지만 계속되는 예외 케이스들에 걸려 계속 오답처리가 되었다. 6번을 틀리고 나서 문제 풀이 방법을 변경하였다. 해당 문제의 제시된 조건을 보면 제한 시간이 2초였다. 그래서 브루트포스로 접근해보았다. 최대 목표 채널은 500,000 이므로 최대 자리수를 10의 6승에서 내려가는 것이 최대 크기일 것이다. 즉 ..

    [백준] 1072번 Z _ Node_js

    문제 https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 문제 풀이 해당 문제는 규칙을 찾아 해당 규칙을 통해 답을 구하는 수학 문제이다. 숫자의 진행 방향은 Z모양으로 2^n X 2^n 단위로 진행이 된다. 그렇기에 여기서 규칙을 찾을 수 있다. 아래 그림을 보자. Z모양의 크기는 2^2k만큼 증가하는데 이를 x축과 y축 별로 증가하는지 작성해보았다. 각 x축은 2^2x, y축은 2^(1+2y)만큼 씩 증가한다. 그렇기에 시작점을 수학적..

    [백준] 1003번 피보나치 함수 _ Node.js

    문제 https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 문제풀이 해당 문제를 조금 잘라서 나타냈는데 결국 피보나치 수열을 진행하면서 f(0)과 f(1)을 각 몇 번씩 사용하는지 출력하는 문제이다. 해당 문제는 피보나치 수열을 구하는 DP문제에서 값을 저장하는 것이 아닌 f(0)과 f(1)을 사용하는 횟수를 저장하면 된다. 제출 코드 const fs = require('fs'); const stdin = (process.platform === 'linux'? fs.readFileSync('/dev/stdin').toString() : `2 6 ..