| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- 코드
- 탈잉회사원A챌린지
- 백준 2193번 c++
- 풀이
- 2644번
- 탈잉유튜브강의
- 백준
- 프로그래머스 가장 큰 수 C++
- 회사원a탈잉강의후기
- 1699번
- 백준 2225번 c++
- TOPCIT 문제 유형
- 차이
- 회사원A강의후기
- transform.position
- 유니티 LTS
- 백준 10844번 c++
- 로블록스 script local script 차이
- c++
- 탑싯기출문제
- 유니티
- 백준 11726번 C++
- TOPCIT 후기
- 프로그래머스 단체사진 찍기 C++
- 탈잉챌린지
- UML Diagram 정리
- bfs
- 탑싯기출
- 탈잉유튜브기획
- long int 의 차이
- Today
- Total
목록Coding Test (53)
Kiki Devlog
푸는 방법은 아는데, 그 방법에 쓸 실행시간이 빠른 함수를 몰라서 틀린 문제. 이번에 알게된 함수를 정리해두자. lower_bound (ary.begin(), ary.end(), ary에서 찾으려는 값) // 첫번째,두번째 인자에는 적용할 범위를 넣는다 찾으려는 값 이상의 숫자가 배열의 몇 번째에 처음 등장하는지 찾음. 사용할 배열은 오름차순으로 정렬되어 있어야 함. vector 배열에서 특정 값의 인덱스를 알고싶다면, (배열이 정렬돼 있을 때) lower_bound함수를 사용하는게 find를 사용하는 것보다 빠르다. (lower_bound를 find로 바꿔서 실행하면 시간 초과됨🥺) unique(ary.begin(), ary.end()) // 인자에는 적용할 범위를 넣는다 unique() 는 앞 뒤 원..
정렬 기준이 2가지라 처음에 map,vector 둘 다 써서 풀었다가 메모리 낭비가 심한것 같아서 vector만 쓰는 것으로 고침. 메모리가 거의 절반이 줄어서 기분 좋았다🎶 굳이 vector을 pair로 만들지 말고 길이는 compare함수 내부에서만 string의 길이를 재서 비교하면 메모리 더 줄겠다. (여기까지는 안고쳐봐도 될듯) 내 코드 #include #include #include #include using namespace std; /*길이가 짧은 것부터, 길이가 같으면 사전 순으로 정렬하는 함수*/ bool compare(const pair& str1, const pair& str2) { if (str1.second == str2.second) return str1.first < str2..
앞에서 카운팅 정렬하는 법을 알고와서 double,int형변환만 잘하면 어렵지는 않았던 문제. (카운팅 정렬이 궁금하다면) 더보기 [10989번][실5] 수 정렬하기 3 (카운팅 정렬) (tistory.com) #define _CRT_SECURE_NO_WARNINGS #include #include #include #include using namespace std; int main() { vector numAry; int countAry[8001] = { 0 }; int maxCount = 0; vector maxAry;//최빈값을 담는 배열 int numSize; int num; double totalAdd = 0; scanf("%d", &numSize); /*숫자가 몇번 나왔는지 세기*/ for (..
카운팅 정렬을 사용하라고 했는데 뭔지 몰라서 찾아봄. 카운팅 정렬은 입력되는 숫자의 범위가 작을 때 유용. 카운딩 정렬이란? 숫자 범위만큼 배열을 만들고, 해당 숫자를 인덱스로 써서 숫자가 각각 몇번 나왔는지를 카운팅 함. 예를들어, 1112334445 라는 배열이 있다면 int numAry[6] = {0,3,1,2,3,1} 이렇게 0부터 숫자가 몇번 나왔는지를 셈. 그리고 나온 횟수만큼 해당 숫자를 출력함. 카운팅 정렬 장단점 장점: 시간 복잡도가 O(n)이다. (quick sort가 nlogn ) 단점: 세는 숫자의 범위만큼 배열이 필요해서, 숫자의 범위가 넓다면 엄청난 메모리가 낭비됨. 내 코드 #define _CRT_SECURE_NO_WARNINGS #include #include #include..
sort함수를 이용하면 바로 풀 수 있는 문제. sort는 오름차순으로 vector 배열을 정렬한다. #include #include #include using namespace std; int main() { vector numAry; int numSize; int num; cin >> numSize; /*숫자 입력받기*/ for (int i = 0; i > num; numAry.push_back(num); } sort(numAry.begin(), numAry.end()); /*정답 출력*/ for (int i = 0; i < numAry.size(); i++) { cout
이 문제를,,,괜히 deque를 사용해서 풀려는 오기를 부리다가 몇시간을 날렸다. tc는 모두 통과되고 반례유명 예시들도 통과했는데 왜 틀렸다고 나오는지 모르겠어서 어제 잠자고, 오늘 다시 처음부터 쉬운방법으로 코딩했다ㅠ 브루트 포스 문제는 심플하게 하나씩 다 뒤져보는게 베스트인 걸로.. 내 코드 #include #include using namespace std; int main() { int weight; int height; int personNum; vector rankAry; vector personAry; cin >> personNum; /*사람 정보 입력받기*/ for (int i = 0; i > weight >> height; personAry...
CheckChess함수에서 시작점을 x,y를 더해서 바꿔주는 부분이 생각하기 어려웠음 ㅠㅠ for문의 조건자체를 바꿔서 자를 체스판 위치를 바꿔보려고 하다가 실패. 간단하게 for문은 두고 i,j에 각각 x,y를 더하면 되는거였음 for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { if (board[x + i][y + j] != chess[i][j])//시작점을 x,y로 바꿔주기 cnt++; } } 내 코드 #include #include #include using namespace std; vector board; /*두 판(board와 chess)이 몇개 다른지 세는 함수*/ int CheckChess(int x, int y, vector che..
오랜만에 재귀함수를 사용한 문제를 풀어봤다. 처음 배울때는 어려워서 혼자 못짰는데, 이제는 금방 풀어서 기분 좋았다 내 코드 #include using namespace std; int factorial(int num) { if (num > 1) return (num)*factorial(num - 1); else return 1; } int main() { int num; int answer = 0; cin >> num; answer = factorial(num); cout
수식만 생각하면 어려운게 하나도 없는 문제! 브1중에 제일 쉬운 것 같다. 늘 코드를 짜고 다른사람이 어떻게 짰나( 더 좋은 코드 있나) 보는데, 변수명을 a,b,c로 쓰고 계산식 그 변수들에 바로 적용한게 많았음. 그치만 나는 가독성이 중요하기 때문에 이렇게 짜는게 나의 베스트라고 생각한다. 술술 읽히는 코드를 잘 짜고싶다! 내 코드 #include using namespace std; int main() { int height; int up; int down; int dailyUp; int day = 1; cin >> up >> down >> height; height -= up; //먼저 한번 올라가두기 dailyUp = up - down; day += height / dailyUp; /*올라가야 ..
1. 모든 알파벳을 대문자로 만들기 2. 크기가 26인 배열을 만들어 A~Z까지 갯수를 세기(countAry[0] 은 A의 갯수 등) 3. 지금까지 제일 많이 등장한 알파벳이라면, answer = 그 알파벳 이전의 알파벳과 동일한 횟수로 많이 등장했다면, answer = '?' 대문자로 만드는 toupper()이나 +=32하는 법만 안다면 쉬운 문제 #include #include using namespace std; int main() { int countAry[26] = { 0 }; int maxAlphabet = -1; char answer; string input; cin >> input; /*알파벳 대문자 변환 후 숫자 세기*/ for (int i = 0; i < input.length(); i..