알고리즘(C++) (28) 썸네일형 리스트형 [백준] C++ 2953번 : 나는 요리사다 풀이과정 행과 열이 5개인 2차원 배열(iArr)과 최고점수를 받은 참가자 index(iMaxScoreIndex)를 저장할 변수를 만든다. 각 행은 참가자, 행의 0-4 열은 해당 행의 참가자가 얻은 네 개의 평가를 저장한다. 각 행의 5 열은 참가자가 받은 네 개의 평가의 합을 저장한다. 각 참가자의 최고 점수와 iMaxScoreIndex의 최고 점수를 비교한다. 코드 더보기 #include using namespace std; int main() { int iArr[5][5] = { {0,} }; int iMaxScoreIndex = 0; for (int i = 0; i > iArr[i][j].. [백준] C++ 2798번 : 블랙잭 풀이과정 카드의 개수(N)과 카드 3장 합의 최대값(M)을 입력받는다. 카드의 숫자를 저장한 벡터(v)와 고른 카드의 숫자를 더한 값(sum), 현재 인덱스(index), 더한 횟수(cnt)를 재귀함수의 인자로 받는다. 더한 횟수가 3이고 sum 이 입력받은 M보다 작거나 같을 때, 카드 3장의 합 최대값을 저장한 변수(iMax)와 비교해서 sum이 iMax보다 크다면 iMax에 sum의 값을 대입한다. 현재 인덱스에 해당하는 카드를 선택한다면 AddValue(v, sum + v.at(index), index + 1, cnt + 1); 로 index와 cnt를 1만큼 증가시켜주고 sum에 현재 인덱스가 가르키는 카드 값( v.at(index) )를 넣어준다. 현재 인덱스에 해당하는 카드를 선택하지 않는다.. [백준] C++ 3052번 : 나머지 풀이과정 입력받은 값을 42로 나누면 나오는 값의 범위는 0~42이다. 크기가 42인 배열(iArr)에 배열의 요소(index)를 입력받은 값 % 42 하여 iArr[index]에 1을 저장해준다. iArr의 각 요소의 값을 모두 더해주면 서로 다른 나머지가 몇 개 있는지 출력할 수 있다. 코드 더보기 #include using namespace std; int main() { int iArr[42] = { 0, }; int iCount = 0; for (int i = 0; i > input; iArr[input % 42] = 1; } for (int i = 0; i < 42; ++i) iCount += iArr[i]; cout [백준] C++ 2920번 : 음계 풀이과정 입력받은 숫자들을 int type vector에 저장하고 vector의 맨 뒤 값(size-1)과 그 이전값(size-2)을 비교한다. 맨 뒤 값 - 1 == 그 이전값을 비교하여 참일 경우 pop_back을 하여 vector의 size가 0이 된다면 "ascending"을 출력하고 거짓일 경우 검사를 중단하고 "mixed"을 출력한다. 맨 뒤 값 + 1 == 그 이전값을 비교하여 참일 경우 pop_back을 하여 vector의 size가 0이 된다면 "descending"을 출력하고 거짓일 경우 검사를 중단하고 "mixed"을 출력한다. 코드 풀이1 더보기 #include #include #include using namespace std; string CheckData(vector v) { .. 이전 1 2 3 4 다음