목록2025/02 (5)
칠리설탕의 it

문제) 위와 같은 문제는 주어진 피로도를 통해 최대한 많은 던전을 탐험하는 문제입니다.핵심은 완전탐색을 통해 각 선택지에 따라 재귀적으로 탐험하면서 최적의 해를 찾는 방법입니다. 문제 풀이) 1. dfs함수를 이용하여 현재 피로도(k)와 탐험한 던전 개수(n)을 통해 탐색 시작2. check배열을 통해 방문한 던전 확인하여 중복 방문 방지3. 가능한 모든 던전을 순회하면서 현재 피로도로 방문 할 수 있는 던전 탐색4. 탐색된 던전 탐험5. 탐험 종료 후 check배열 원상 복구 후 백트래킹6. 매 탐험마다 최대 던전 개수 갱신

문제) 위와 같은 문제는 brown, yellow의 격자를 통해 카펫의 크기를 구하는 문제입니다.이문제의 핵심 아이디어는 (카펫 가로길이-2) * (카펫 세로길이-2) == yellow격자 개수라는 아이디어를 사용하는 것입니다. 문제풀이) 1. brown, yellow의 격자 개수를 합쳐 전체 격자의 개수를 계산2. 전체 격자의 수를 두개의 정수의 곱으로 표현할 수 있는지 확인3. (카펫 가로길이-2) * (카펫 세로길이-2) == yellow격자 개수를 만족하면 answer에 추가

문제) 위와 같은 문제는 주어진 numbers를 통해 만들수 있는 소수의 개수를 찾는 문제입니다.핵심은 백트랙킹을 통한 만들수 있는 모든 소수를 만들고 중복을 제거하여 소수를 판별하는 것입니다. 문제풀이)1. 입력받은 numbers 문자열을 문자 벡터에 저장 후 정렬2. next_permutation() 라이브러리 함수를 이용하여 가능한 모든 순열을 생성( next_permutation를 사용하기 위해서는 정렬필요)3. 중복 제거4. 소수를 판하는 에라토스테네스의 체( Sieve of Eratosthenes ) 알고리즘을 이용하여 소수 판별 중복을 제거할때 unique( nums.begin(), nums.end() ) 을 사용하는데 연속된 중복된 요소를 벡터의 앞부분으로 이동시킨 후 erase(..

문제) 위와 같은 문제는 정답이 들은 배열이 존재할때 3명의 사람중 누가 더 많이 문제를 찍어서 맞췄나 알아보는 문제입니다.핵심은 3명의 사람의 문제 찍는 패턴을 찾아 주어진 정답 리스트와 비교하는 것입니다. 문제풀이)1. 각 수포자의 정답을 찍는 패턴 찾기2. 정답배열과 찍는 패턴과 비교3. 최고 점수를 받는 수포자를 찾기

문제) 위와 같은 문제는 모든 명함을 수납할 수 있는 가장 작은 지갑 크기를 찾는 문제입니다.핵심은 각 명함을 가로, 세로 방향으로 회전을 하여 가로와 세로를 비교하여 더 긴 길이를 가로, 짧은 길이를 세로로 정의하여 푸는 것 입니다. 문제풀이)1. 각 명함마다 가로길이와 세로길이를 비교하여 더 긴 길이를 가로로, 짧은 길이를 세로로 정리2. 정리된 명함마다 가로길이 / 세로길이를 비교하여 가장 긴 가로길이 / 세로길이를 저장3. 저장된 가로길이 / 세로길이를 곱하여 return