Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 멀티스레드
- JavaScript
- 구현
- C++
- 프론트엔드 스쿨
- 백준
- Server
- leetcode
- socket
- 문자열&연산자
- 코딩테스트
- 메모리 배리어
- 알고리즘
- 제로베이스
- 프로그래머스
- 완전탐색
- 백트래킹
- React
- N과 M(2)
- map
- Algorithm
- dfs
- 서버
- 제로베이스 프론트엔드 스쿨
- BFS
- 자바스크립트
- c#
- MemoryBarrier
- 구조체
- 코딩테스트 스터디
Archives
- Today
- Total
Written
프로그래머스 레벨2 <할인 행사> C++ 풀이 본문
discount의 구간을 앞에서 부터 10개씩 잘라가면서 각 구간에서 내가 사려고 하는 물품들을 전부 살수 있으면 카운트를 하나씩 늘려주는게 가장 먼저 떠오른 풀이방법이었습니다. 완전탐색의 방식이기 때문에 시간복잡도를 반드시 확인 해봐야죠. 만약 입력값이 크다면 완전탐색이 아닌 다른 방식의 풀이로 풀라는 의미입니다.
이 문제는 최대 입력값이 100,000이고 각 구간마다 10번씩 탐색하기에 시간초과에는 걸리지 않을거라 판단하고 완전탐색으로 돌렸습니다. 내가 사려고 하는 물품들에 대한 정보는 map<string,int>로 저장해두고 하나씩 줄이면서 모든 탐색이 끝나고 사려고하는 모든 물품의 갯수가 0보다 작거나 같으면 카운트를 ++해줬습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
#include <string>
#include <vector>
#include <map>
using namespace std;
//완탐이냐 아니냐.
int answer = 0;
void check(int idx,vector<string>& discount,map<string,int> buy)
{
int curIdx = idx;
for (int i=0;i<10;i++)
{
if (curIdx >= discount.size())
return;
string tmp = discount[curIdx];
buy[tmp]--;
curIdx++;
}
bool flag = true;
for(auto it=buy.begin();it != buy.end();it++)
{
if (it->second > 0)
{
flag = false;
break;
}
}
if (flag == true)
answer++;
}
int solution(vector<string> want, vector<int> number, vector<string> discount) {
map<string,int> buy;
for (int i=0;i<want.size();i++)
{
buy[want[i]] = number[i];
}
for (int i=0;i<discount.size();i++)
{
check(i,discount,buy);
}
return answer;
}
|
cs |
'알고리즘 문제풀이' 카테고리의 다른 글
프로그래머스 레벨2 <피로도> C++ 풀이 (0) | 2023.09.13 |
---|---|
프로그래머스 레벨2 <두 큐 합 같게 만들기> C++ 풀이 (0) | 2023.09.08 |
프로그래머스 레벨2 <혼자 놀기의 달인> C++ 풀이 (0) | 2023.09.06 |
프로그래머스 레벨2 <택배상자> C++ 풀이 (0) | 2023.09.06 |
프로그래머스 / 롤케이크 자르기 / C++ (0) | 2023.09.04 |
Comments