본문 바로가기

자료구조와 알고리즘/[Inflearn_큰돌] 10주 완성 C++ 코딩테스트15

1주차-3. 1159번 농구 경기 1159번 농구 경기 문제 요약하자면 출전하는 선수들 중 첫 글자가 같은 선수들이 5명 이상 있다면 체크해두었다가 그 첫 글자들을 공백없이 출력하는 문제임 만약 5명 미만이라면 PREDAJA를 출력 먼저 무작정 풀어보기 #include #include #include using namespace std; int main() { int n = 0; std::cin >> n; std::string temp; int directAddr[128] = {}; for (int i = 0; i > temp; directAddr[temp[0]] += 1; } std::vector chVec; for (int i = 0; i < 128; i++) { if (directAddr[i].. 2022. 9. 26.
1주차-2. 10988번 팰린드롬인지 확인하기 10988번 팰린드롬 문제 문제의 요지는 단순하게 주어진 문장이 팰린드롬인지 확인하는 문제였다. 단어의 길이가 주어져서 배열의 사이즈를 가늠할 수 있다. 먼저 무작정 풀어보기 #include using namespace std; int main() { char chArr[101]; cin >> chArr; size_t length = 0; char* p = chArr; while (*p != '\0') { length++; p++; } for (int i = 0; i < length / 2; i++) { if (chArr[i] != chArr[length - i - 1]) { cout 2022. 9. 13.
1주차-1. 2979번 트럭 주차, 카운팅 배열에 대한 개념 2979번 트럭 주차 문제 문제의 요지는 주차된 차량 별 3가지 요금을 입력 받아서,주차된 차량이 몇 대냐에 따라 1대 당 요금을 다르게 책정하고최종적으로 발생하는 비용을 물어보는 문제였다. 먼저 무작정 풀어보기 값을 입력 받고, for문의 범위를 정하기 위해 최대 / 최소를 구하는 로직 int A, B, C; cin >> A >> B >> C; int arr[3][2] = {}; int min = 101, max = -1; for (int i = 0; i > arr[i][j]; if (arr[i][j] >= max) max = arr[i][j]; if (arr[i][j] > A >> B >> C; int sum = 0;.. 2022. 9. 12.
1주차-0. 기초 개념 : 개념 강의 시간복잡도 문제를 해결하는데 걸리는 시간과 입력의 함수 관계 for (int i = 0; i 3 -> 4 -> 5 -> ... 누적합 : 0 -> 1 -> 3 -> 6 -> 10 -> 15-> ... 이렇게 저장해두면 누적합[3] 요소가 원본[0~3]까지 더한 수가 된다 따라서 누적합을 사용하려면 이전 것(i-1)과 현재 것(i)을 저장해야 하므로 인덱스는 1부터 시작하는 것이 좋다. prefixSum[i] = original[i-1] + original[i]; 0부터 시작할 경우 original[i-1] 이 부분이 -1이 되기 때문 1주차에서 중요.. 2022. 9. 4.