[프로그래머스 C++] 피로도
[프로그래머스 C++] 피로도
https://school.programmers.co.kr/learn/courses/30/lessons/87946
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
해결전략
DFS
완전 탐색
코드
#include <algorithm> #include <string> #include <vector> using namespace std; int maxCnt; // 방문 가능한 최대 던전 개수 int ch[8]; // 각 던전에 대한 방문 여부 체크 배열 // x: 현재 에너지, dungeons: 각각의 던전 정보 (에너지 요구량, 소모량), cnt: 현재까지 방문한 던전의 개수 void DFS(int x, vector<vector<int>>& dungeons, int cnt) { if (cnt > maxCnt) // 만약 현재까지 방문한 던전의 개수가 이전 최대치보다 크다면 maxCnt = cnt; // 최대치 업데이트 for (int i = 0; i < dungeons.size(); i++) // 모든 던전에 대해서 반복 { // 아직 방문하지 않은 던전이며, 현재 에너지가 해당 던전의 에너지 요구량보다 크거나 같다면 if (ch[i] == 0 && x >= dungeons[i][0]) { ch[i] = 1; DFS(x - dungeons[i][1], dungeons, cnt + 1); ch[i] = 0; } } } int solution(int k, vector<vector<int>> dungeons) { DFS(k, dungeons, 0); int answer = maxCnt; return answer; }
'⭐ 코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 C++] [1차] 뉴스 클러스터링 (0) | 2023.09.21 |
---|---|
[프로그래머스 C++] 튜플 (0) | 2023.09.19 |
[프로그래머스 C++] 의상 (0) | 2023.09.15 |
[프로그래머스 C++] 행렬의 곱셈 (0) | 2023.09.13 |
[프로그래머스 C++] n^2 배열 자르기 (0) | 2023.09.13 |
댓글
이 글 공유하기
다른 글
-
[프로그래머스 C++] [1차] 뉴스 클러스터링
[프로그래머스 C++] [1차] 뉴스 클러스터링
2023.09.21[프로그래머스 C++] [1차] 뉴스 클러스터링 https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 문자열 isupper() 대문자인지 확인 tolower() 대문자를 소문자로 변환 string tmp = str1.substr(i, 2); C++의 std::string 클래스에서 사용할 수 있는 substr 함수를 사용하여 문자열에서 일부를 추출하는 코드. str1은 원본 문자열이며, i는 현재 문자열에서 추출을 시작할 위치를 나타낸다. … -
[프로그래머스 C++] 튜플
[프로그래머스 C++] 튜플
2023.09.19[프로그래머스 C++] 튜플 https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 문자열 map pair 코드 #include #include #include #include using namespace std; vector solution(string s) { map m; // 숫자와 그 등장 횟수를 저장할 맵 int tmpNum = 0; // 현재 파싱 중인 숫자 //처음과 끝의 {, } 제외하고 for문을 돌린다. 1~s.size()-… -
[프로그래머스 C++] 의상
[프로그래머스 C++] 의상
2023.09.15[프로그래머스 C++] 의상 https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 map 안의 벡터 배열 key와 여러개의 value 코드 #include #include #include #include using namespace std; int solution(vector clothes) { map myMap; //맵 생성, key: 의상의 종류, value: 의상의 이름들을 값 for (int i=0; isecond.push_back(… -
[프로그래머스 C++] 행렬의 곱셈
[프로그래머스 C++] 행렬의 곱셈
2023.09.13[프로그래머스 C++] 행렬의 곱셈 https://school.programmers.co.kr/learn/courses/30/lessons/12949 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 구현 행렬의 곱 코드 #include #include using namespace std; vector solution(vector arr1, vector arr2) { vector answer(arr1.size(), vector(arr2[0].size())); for (int y = 0; y < arr1.size(); y++) { for (int x …
댓글을 사용할 수 없습니다.