-
https://school.programmers.co.kr/learn/courses/30/lessons/131127
아이디어
회원 기간인 10일간 필요한 모든 제품을 모두 할인 가격으로 살 수 있는 날을 찾는 문제입니다.
처음 구현에는 vector로 순회를 돌면서 비교하게 구현을 했지만 unordered_map에 담아 == 연산자를 이용하여 비교연산이 가능하고 이것을 이용하면 더 클린한 코드로 구현이 가능했습니다. 아래는 관련된 자료입니다.
다른코드들을 보면서 새로운것을 배우고 적용함으로써 오늘도 성장함을 느낍니다.
#include <string> #include <vector> #include <unordered_map> using namespace std; int solution(vector<string> want, vector<int> number, vector<string> discount) { int answer = 0; unordered_map<string, int> require; for (int i = 0; i < want.size(); i++) require[want[i]] = number[i]; for (int i = 0; i <= discount.size() - 10; i++) { unordered_map<string, int> result; for (int j = i; j < i + 10; j++) { result[discount[j]] += 1; } //unordered_map은 ==이 먹힘 if (result == require) answer++; } return answer; }
'알고리즘 > 프로그래머스' 카테고리의 다른 글
Programers 땅따먹기 / C++ (2) 2022.12.03 Programers 약수의 합 / C++ (0) 2022.12.03 Programers 귤 고르기 / C++ (1) 2022.12.03 Programers 야근지수 / C++ (0) 2022.12.03 Programers 단속카메라 / C++ (0) 2022.12.03 댓글