안녕하세요, 루피입니다. 오늘은 프로그래머스 다리를 지나는 트럭문제 풀이를 정리 해보려합니다. 바로 시작합니다.문제 풀이#include #include #include using namespace std;int solution(int bridge_length, int weight, vector truck_weights) { int time = 0; int current_weight = 0; queue bridge; for (int i = 0; i 이번 문제의 핵심은 다리라는 큐를 만들어 내는 것이라고 생각합니다. bridge 라는 큐를 만듭니다.대기 트럭을 순서대로 확인합니다.현재 트럭이 다리에 올라갈 때까지 시간을 보냅니다.(while 문)시간 경과다리가 꽉 차 있으..
Algorithm
안녕하세요, 루피입니다.오늘은 프로그래머스 프로세스 문제 풀이를 간단하게 정리해보려합니다. 바로 시작합니다.문제 풀이#include #include #include using namespace std;int solution(vector priorities, int location) { int answer = 0; queue> q; for(int i=0;i pq; for(auto i : priorities) pq.push(i); while(!q.empty()) { int current_priority = q.front().first; int current_location = q.front().second; q.pop(); ..
안녕하세요, 루피입니다.오늘은 프로그래머스 기능개발 풀이를 기록하려합니다. 바로 시작합니다.문제 분석먼저 문제의 요구사항을 명확히 해야 합니다.각 기능은 100%가 되어야 배포 가능합니다.각 기능의 개발 속도는 모두 다릅니다.핵심 규칙: 뒤에 있는 기능이 먼저 개발되더라도, 앞에 있는 기능이 배포될 때 함께 배포됩니다.예를 들어, 1번 기능이 7일 걸리고 2번 기능이 3일 걸린다면, 2번 기능은 3일 만에 완성되지만 1번 기능이 배포되는 7일 차에 함께 배포됩니다. 즉, 우리는 배포 그룹의 크기를 구해야 합니다.풀이 전략이 문제의 핵심은 "먼저 들어온 기능이 먼저 배포되어야 한다"는 점입니다. 이 규칙은 자료구조 큐(Queue)의 FIFO(First-In, First-Out) 특성과 정확히 일치합니다.전..
안녕하세요, 루피입니다.오늘은 프로그래머스 '같은 숫자는 싫어'라는 문제 풀이를 기록해보려 합니다. 바로 시작합니다.문제 분석이 문제는 아주 간단합니다. 배열 arr가 주어지면, 이 배열에서 연속적으로 나타나는 중복된 숫자들을 제거하고 남은 숫자들을 순서대로 반환하면 됩니다.입력: [1, 1, 3, 3, 0, 1, 1]출력: [1, 3, 0, 1]입력: [4, 4, 4, 3, 3]출력: [4, 3]연속된 숫자를 어떻게 효과적으로 처리할지가 이 문제의 핵심입니다.스택을 이용한 첫 번째 풀이가장 먼저 떠올릴 수 있는 방법 중 하나는 스택(Stack)을 활용하는 것입니다. 스택의 LIFO(Last-In, First-Out) 특성을 이용하면, 가장 최근에 추가한 원소와 현재 원소를 비교하기가 매우 용이하기 때문..
안녕하세요, iOS 개발하는 루피입니다. 오늘은 백준 1629번 곱셈 문제를 풀어보겠습니다. 바로 시작합니다.풀이#includeusing namespace std;typedef long long ll;ll func(ll a,ll b,ll c) { if(b==1) return a%c; // 기저 사례 ll ret = func(a,b/2,c); ret = (ret*ret)%c; if(b % 2 ==1) ret = (ret*a)%c; return ret;}int main() { ios_base::sync_with_stdio(false); cin.tie(NULL);cout.tie(NULL); ll a,b,c; cin >> a >> b >> c; cout 핵심은 ..
안녕하세요, iOS 개발하는 루피입니다. 오늘은 백준 4375번 1 문제를 풀어보겠습니다. 바로 시작합니다.https://www.acmicpc.net/problem/4375풀이#includeusing namespace std;int main() { int num; while(cin>>num) { int k=1; int i =1; while(1) { // 핵심 코드 if(k%num == 0) { cout 코드가 짧기 때문에 핵심 코드 부분만 정리해 보도록 하겠습니다. k = k*10 +1 을 모듈로 계산하고 넣지 않을 경우 수가 너무 커지기 때문에 시간 초과가 날 것입니다.따라서 k = (k*10+1..
안녕하세요, iOS 개발하는 루피입니다. 오늘은 백준 9375번 패션왕 신해빈 문제를 풀어보겠습니다. 바로 시작합니다.https://www.acmicpc.net/problem/9375풀이#includeusing namespace std;int main() { int testCase; cin >> testCase; for (int i=0;i> num; mapm; for (int j=0;j> name >> type; m[type]++; } int res = 1; // 핵심 로직 for(auto it : m) res *= (it.second+1); cout 문제를 풀면 사실 상 name은 사용..
안녕하세요, iOS 개발하는 루피입니다. 오늘은 백준 9996번 한국이 그리울 땐 서버에 접속하지 문제를 풀어 보겠습니다. 바로 시작합니다. https://www.acmicpc.net/problem/9996풀이#includeusing namespace std;int main() { int testCase; cin >> testCase; string pattern; cin >> pattern; long long divide = pattern.find('*'); string prefix = pattern.substr(0,divide); string suffix = pattern.substr(divide+1); for ( int i=0;i> str; string t..
안녕하세요, iOS 개발하는 루피입니다. 오늘은 백준 10808 문제를 2가지 방법으로 풀어 보겠습니다. 바로 시작하겠습니다.https://www.acmicpc.net/problem/10808단순 구현을 통한 풀이#includeusing namespace std;int main() { string str; cin >> str; int a[26] = {}; for (int i=0;iMap을 이용한 풀이#includeusing namespace std;int main() { mapm; string str; cin >> str; for ( int i=0;i오늘도 화이팅입니다.
안녕하세요, iOS 개발하는 루피입니다. 오늘은 순열과 조합의 방식으로 백준 일곱 난쟁이 문제를 풀어보도록 하겠습니다. 바로 시작합니다.https://www.acmicpc.net/problem/2309이번 문제는 순열과 조합으로 접근하여 문제를 풀 수 있습니다. 순열과 조합에 대한 알고리즘은 익혀두고 있으면 좋을거 같습니다.순열을 이용한 풀이#includeusing namespace std;int main() { vectorv(9); for ( int i=0;i> v[i]; sort(v.begin(),v.end()); do { int sum = 0; for (int i=0;inext_permutation()을 이용해 매번 다른 순열을 만듭니다.새로 만들어진 ..