알고리즘/그리디

알고리즘/그리디

SWEA - 1289 원재의 메모리 복구하기

문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV19AcoKI9sCFAZN SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 모든 bit가 0인 초기화 상태에서 입력값으로 주어진 상태로 만들기 위해 고쳐야 하는 최소 횟수를 구하는 문제였다. 문제 풀이 단순히 0의 값과 1의 값을 구해 더 적은 횟수가 정답인 줄 알았는데, 현재 bit를 변경하면 현재 위치부터 맨 끝까지 해당 bit로 덮어씌워지는 문제였다. 현재 값을 초기 상태인 0으로 지정하고, 메모리 bit의 맨 앞부터 순회하면서 다른 수가 나오면 다음 수로 변경..

알고리즘/그리디

백준 - 14629 숫자 조각

문제 https://www.acmicpc.net/problem/14629 14629번: 숫자 조각 곧 7살을 맞이하는 준하는 유치원에서 숫자가 적힌 나무 조각들을 가지고 노는 것을 좋아한다. 숫자 조각은 총 10개이며, 각각의 조각엔 0부터 9까지의 숫자가 한 숫자씩 적혀있다. 준하는 각 숫 www.acmicpc.net 준하가 수포자가 되지 않도록 0~9까지의 숫자를 한 번만 사용해 입력받은 숫자 N과 가장 차이가 적은 숫자를 구하는 문제였다. 문제 풀이 그리디로 풀면 될 것 같아서 그리디로 풀었다. 근데 백트래킹으로 푸는게 정신 건강에 더 좋을 것 같다. 처음에는 long long으로 N을 입력받고, int 배열에 각 자리를 저장해줬었다. 문제를 풀다가 string으로 받게 하는게 더 간단한 것 같아서..

알고리즘/그리디

프로그래머스 - 두 큐 합 같게 만들기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/118667# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr pop과 push를 해서 주어진 두 큐의 합을 같게 만드는 문제였다. 문제 풀이 따로 큐를 만들어 사용하진 않고 주어진 벡터에 push_back 하며 index를 옮겨서 풀었다. 계속 3번, 5번 테케가 틀려서 왜그런가 했는데.. 맨 처음 합을 구하는 for문에서 i sum2){ sum1-=queue1[index1]; sum2+=queue1[index1]; queue2.push_back(..

알고리즘/그리디

프로그래머스 - 예산

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12982 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주어진 예산 내에서 최대한 많은 부서에 금액을 지원하도록 하는 문제였다. 문제 풀이 오름차순으로 정렬한 후 그리디를 이용해 풀었다. #include #include #include #include #include using namespace std; int solution(vector d, int budget) { int answer = 0; sort(d.begin(),d.end()); fo..

알고리즘/그리디

프로그래머스 - 요격 시스템

문제 https://school.programmers.co.kr/learn/courses/30/lessons/181188?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 그리디 문제로 정렬 후 그때그때 최선의 선택을 해서 답을 도출하는 문제였다. 문제 풀이 처음에는 target을 정렬한 다음 section vector를 만들어 겹치는 구간을 만들고 각 target 마다 구간 내 가장 겹치는 곳이 많은 곳을 미사일을 쏘는 곳으로 정한 후 section vector에서 --를 해주려고 했었는데 문제 조건에서 target 길이와 s,e 길..

알고리즘/그리디

[이코테] 실전 문제

최근에는.. 할 일이 너무 많아서 우선순위에서 밀려나는 바람에 문제를 많이 안풀었다.. 다시 차근차근 코테 준비를 해볼까 한다.. (2022-2 알고리즘 때 구현하기는 했음, 이것도 정리해서 올릴 예정) 다시금 감을 잡기 위해 이코테 책을 앞에서부터 다 풀기로 했다. 큰 수의 법칙 배열의 주어진 수를 M번 더해 가장 큰 수를 만드는 문제로 이때 특정 인덱스의 수는 연속으로 K번을 초과해 더할 수 없다. 처음 이 문제를 풀 때는 [가장 큰 수를 K번, 그 다음으로 큰 수 1번]을 반복해서 가장 큰 수를 구했다. 하지만 이는 비효율적인 방법이었고 알맞은 수식을 찾아내서 한 번에 해결할 수 있었다. #define _CRT_SECURE_NO_WARNINGS #include #include #include usi..

알고리즘/그리디

이코테 문제 - 곱하기 혹은 더하기

문제 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 사이에 'X' 혹은 '+'를 넣어 만들 수 있는 가장 큰 수 구하기 모든 연산은 왼쪽부터 이뤄진다고 가정 입력 조건 첫째 줄에 여러 개의 숫자로 구성된 하나의 문자열 S가 주어짐 (1

알고리즘/그리디

이코테 문제 - 모험가 길드

문제 공포도가 X인 모험가는 반드시 X명 이상으로 구성한 모험가 그룹에 참여해야 함 만들 수 있는 모험가 그룹의 최대 개수 구하기 입력 조건 첫째 줄에 모험가의 수 N이 주어짐 (1 값 갱신해주기 (count는 0으로, answer ++) #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; int n[100001]; int main() { int N; int i; int answer = 0; int count = 0; scanf("%d", &N); for (i = 0; i < N; i++) { scanf("%d", &n[i]); } sort(n, n + N); for (i = 0; i < N; i++) { coun..

hahihi
'알고리즘/그리디' 카테고리의 글 목록