문제 (요약) 주어진 수열이 문제에서 정의한 순열인지 판단하라. 길이 N인 순열은 1부터 N까지의 자연수를 중복 없이 순서에 상관없이 모두 사용하여 만든 수열을 의미한다. 접근 입력된 수열을 검사하여 모두 1회씩 출현했는지 확인한다. 풀이 #include #include using namespace std; string fnSolve(vector &v, int N) { for (int i = 1; i > T; for (int t = 1; t > N; vector v(N+1); for (int i = 0; i > idx; v[idx] += 1; } cout
sw expert academy
문제(요약) 부분문자열의 갯수를 구하시오. (출처) 접근법 완전탐색구현 후, 시간초과 발생하여 Dynamic Programing (Memoization) 적용 풀이 #include #include using namespace std; string S; string sT = "SAMSUNG"; const int NUM = 1000000007; vector memo; int fnSolve(int IdxT, int IdxS) { if (sT.size() == IdxT) { return 1; } if (S.size() == IdxS) { return 0; } int Ret = memo[IdxT][IdxS]; if (Ret != -1) { return Ret; } if (sT[IdxT] == S[IdxS]) { ..
문제(요약) 8821. 적고 지우기 풀이 문자열에 홀수번 등장하는 숫자의 개수를 구합니다. 입력받는 숫자의 범위가 '0' ~ '9' 로 제한되므로 입력받을 때마다 개수를 증가시키고 이 값이 홀수인 경우를 답으로 산출합니다. 단, 문자열로 입력받게 되므로 이를 숫자형으로 변환할 필요가 있습니다. #include #include using namespace std; int main(int argc, char** argv) { int T; cin >> T; for (int i = 0; i > strNum; for (int j = 0; j < s..
문제(요약) 입력받은 10개의 숫자의 각 자리수를 더하여 그 중 최대값과 최소값을 화면에 출력하라. 풀이 각 자리의 숫자는 나머지 연산자를 통해 쉽게 구할 수 있습니다. #include #include using namespace std; FILE* stream; const int NUM_INPUT = 10; int main(void) { freopen_s(&stream, "sample_input.txt", "r", stdin); int T; cin >> T; for (int t = 1; t > n; int sum = 0; while (n > 0) { int dig = (n % 10); n /= 10; sum += dig; } if (sum > max) { max = sum; } if (sum < min..