algorithm/problems

[프로그래머스 / Javascript] 전력망을 둘로 나누기
문제 https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 해당 문제는 송전탑의 연결 상태를 파악한 후 모든 전선을 한번씩 잘라보며 각 전원의 송전탑의 수의 차이를 구하는 문제이다. 문제를 풀 때 송전탑의 연결을 송전탑의 오브젝트에 넣어두어 연결 상태를 확보한 후 끊긴 이 후 송전탑의 수를 구했다. 글보다 코드를 보면 이해가 쉬울 것 같다. function countLink (link,start) { let answer = 0; const..

[프로그래머스 / C++] 이모티콘 할인행사
문제 문제 길이가 길어 문제는 링크로 확인 부탁드립니다. https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 해당 문제는 조건에 부합하는 최적의 이모티콘 각 할인률을 구하는 문제이다. 문제에서 중요한 조건은 아래와 같다. 1. 1번 목표가 우선이며, 2번 목표가 그 다음입니다. 2. 1 ≤ emoticons의 길이 = m ≤ 7 , 할인율은 10%, 20%, 30%, 40% 중 하나로 설정 1번 조건은 이모티콘 판매 가격이 아무리 높더..

[프로그래머스 / C++] 롤케이크 자르기
문제 https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 해당 문제는 같은 토핑 가짓수로 나눌 수 있는 방법의 수를 반환하는 문제이다. 그렇기 때문에 모든 케이스를 확인해볼 필요가 있었다. 이때 모든 자르는 방법 마다 양쪽의 토핑 수를 카운트하면 시간 초과가 날 것 같았다. -> 시간 복잡도는 n^n이므로 최대 100000^100000이다. 그렇기에 초기 값을 구한 후 순서대로 올라가며 계산된 map에서 right -> left으로 값..

[프로그래머스 / 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 }; 위 코드와 같이 간단하게 각 자리의 숫..