본문 바로가기

728x90
SMALL

programmers

(38)
프로그래머스 [연습문제 / 푸드 파이트 대회](C++) -yes6686- 티스토리 프로그래머스 문제 풀이: 푸드 파이트 대회문제 링크: 문제 보기문제 설명:각 음식 종류별로 제공 가능한 개수가 주어질 때, 양쪽 선수가 공평하게 음식을 나눠 갖고, 가운데에는 항상 '0'(물)을 배치해야 합니다. 각 음식은 좌우 대칭으로 배치되어야 하며, 음식을 적절히 절반으로 나눈 후 대칭 구조로 정답 문자열을 구성해야 합니다.문제 해결 코드#include #include #include #include using namespace std;string solution(vector food) { string answer = ""; string r = ""; // 각 음식의 절반만큼 문자열 생성 for (int i = 1; i 코드 설명핵심 알고리즘: 각 음식 개수의 절반만큼 문자열을..
프로그래머스 [연습문제 / 과일 장수](C++) -yes6686- 티스토리 프로그래머스 문제 풀이: 과일 장수문제 링크: 문제 보기문제 설명:과일 장수가 사과를 상자 단위로 포장하여 판매할 때, 한 상자에 m개씩 포장합니다. 이때 한 상자의 가격은 가장 낮은 사과 점수 × m이며, 사과 점수는 score 배열로 주어집니다. 상자를 최대한 많이 만들고, 총 이익을 구하는 문제입니다.문제 해결 코드#include #include #include using namespace std;int solution(int k, int m, vector score) { int answer = 0; // 점수를 내림차순 정렬 sort(score.begin(), score.end(), greater()); // m개씩 묶어서 최솟값 * m 만큼 수익 계산 for (int ..
프로그래머스 [연습문제 / 기사단원의 무기](C++) -yes6686- 티스토리 프로그래머스 문제 풀이: 기사단원의 무기문제 링크: 문제 보기문제 설명:각 기사단원은 자신의 번호에 해당하는 수의 약수 개수만큼 공격력을 갖는 무기를 지급받습니다. 단, 약수의 개수가 limit보다 크면 power로 대체 지급됩니다. 모든 기사단원의 무기 공격력 합을 구하는 문제입니다.문제 해결 코드#include #include using namespace std;int solution(int number, int limit, int power) { int answer = 0; for (int i = 1; i limit) ? power : cnt; } return answer;}코드 설명핵심 알고리즘: 각 수의 약수 개수를 구한 뒤, limit을 초과하면 power로 대체하는 조..
프로그래머스 [연습문제 / 명예의 전당 (1)](C++) -yes6686- 티스토리 프로그래머스 문제 풀이: 명예의 전당 (1)문제 링크: 문제 보기문제 설명:매일 발표된 가수의 점수 중, 명예의 전당에 오를 수 있는 k개의 점수를 유지하면서, 그날의 최하위 점수를 기록하는 문제입니다. 명예의 전당 점수는 내림차순으로 유지되며, k개 이상이면 가장 낮은 점수보다 더 높은 점수만 등록됩니다.문제 해결 코드#include #include using namespace std;vector arr; // 명예의 전당 점수 저장용vector solution(int k, vector score) { vector answer; arr.push_back(score[0]); answer.push_back(score[0]); for (int i = 1; i 0; j--) { ..
프로그래머스 [연습문제 / 문자열 나누기](C++) -yes6686- 티스토리 프로그래머스 문제 풀이: 문자열 나누기문제 링크: 문제 보기문제 설명:하나의 문자열을 왼쪽부터 읽으면서, 처음 나온 문자와 다른 문자의 수가 같아질 때 분리하여 나눌 수 있는 문자열 개수를 구하는 문제입니다. 이 과정을 반복하여 전체 문자열을 다 나눌 수 있습니다.문제 해결 코드#include #include using namespace std;int solution(string s) { int answer = 0; for (int i = 0; i 코드 설명핵심 알고리즘: 왼쪽에서부터 순차적으로 탐색하며 같은 문자 수와 다른 문자 수가 같아지는 순간 분리하는 방식으로 해결합니다.구현 세부사항:cnt1은 현재 구간의 기준 문자의 등장 횟수, cnt2는 나머지 문자의 등장 횟수입니다.두 값..
프로그래머스 [연습문제 / 가장 가까운 같은 글자](C++) -yes6686- 티스토리 프로그래머스 문제 풀이: 가장 가까운 같은 글자문제 링크: 문제 보기문제 설명:문자열 s의 각 문자를 왼쪽에서부터 순서대로 확인하며, 이전에 등장한 같은 문자가 있다면 가장 가까운 위치의 거리(차이)를 저장하고, 없다면 -1을 저장하는 문제입니다.문제 해결 코드#include #include using namespace std;int alpha[26]; // 각 문자 마지막 위치 저장vector solution(string s) { vector answer; for (int i = 0; i 코드 설명핵심 알고리즘: 각 문자의 마지막 등장 위치를 저장하고, 현재 인덱스와의 차이를 통해 거리를 계산합니다.구현 세부사항:alpha 배열은 알파벳마다 마지막으로 등장한 인덱스를 저장합니다. 0이면 처음..
프로그래머스 [2023 KAKAO BLIND RECRUITMENT / 개인정보 수집 유효기간](C++) -yes6686- 티스토리 프로그래머스 문제 풀이: 개인정보 수집 유효기간문제 링크: 문제 보기문제 설명:개인정보 수집일과 약관별 유효기간이 주어졌을 때, 현재 날짜를 기준으로 유효기간이 만료된 개인정보의 번호를 찾는 문제입니다. 날짜 계산 시, 모든 달을 28일로 고정하여 계산해야 합니다.문제 해결 코드#include #include #include #include using namespace std;int alpha[26]; // 각 약관의 유효기간 저장// 날짜를 일(day) 단위로 변환하는 함수int convertToDays(string date) { istringstream s(date); string sb; int i = 1, totalDays = 0; while (getline(s, sb, '.'..
프로그래머스 [연습문제 / 둘만의 암호](C++) -yes6686- 티스토리 프로그래머스 문제 풀이: 둘만의 암호문제 링크: 문제 보기문제 설명:주어진 문자열 s의 각 문자를 index만큼 이동시켜 새로운 암호를 생성하는 문제입니다. 단, 특정 문자는 제외하고 이동해야 하므로 이를 고려하여 변환해야 합니다.문제 해결 코드#include #include #include using namespace std;int skipAlpha[26]; // 제외할 알파벳 여부 저장string solution(string s, string skip, int index) { string answer = ""; // 제외할 알파벳을 기록 for (char ch : skip) { skipAlpha[ch - 'a'] = 1; } // 문자열 변환 for (ch..

728x90
LIST