이제 아는 언어도 좀 있겠다, 인턴/취준을 좀 해보겠다고 알고리즘 문제를 풀어나가다 보면 백이면 백 구글에 다시 찾아보는 개념이 자료형이다. 너무나도 쉬운 문제라고 생각해서 풀었는데 런타임 에러가 생긴다던지, 틀릴 이유가 없는데 모든 테스트 케이스가 통과를 못한다던지. 뭐지…? 하다가 밑에 달린 댓글을 보거나, 도저히 안되겠어서 풀이를 검색해보면 '풀이'가 문제가 아니라 답을 담던 그릇이 잘못 된 경우가 허다하다. 물론 문제를 풀 때 처음부터 주어지는 input 값의 크기를 제대로 보는게 제일 중요하지만 또 멍청이 같이 똑같은 실수를 했을 미래의 나를 위해 쓴다. 자료형 중에 막 __int32, __int64 뭐 이런게 있는데 호환되는 일반자료형(이렇게 표현해도 되는건가)이 존재하니까 그냥 쓰던 자료형,..
[5948] : 새샘이의 7-3-5 게임 입력 : 7개의 서로 다른 정수 출력 : 7개의 정수 중 3개의 수의 합 중 5번째로 큰 수 전략 주어지는 입력이 7개의 정수이므로 만들 수 있는 합의 조합은 35개 내림 차순으로 정렬을 하고 5번째로 큰 수를 구한다 (합은 같을 수 있음 (5 + 6 + 7) = (4 + 5 + 9) 처럼) #include #include using namespace std; bool descend(int, int); int fifthLargeNum(int *); int main(void){ int testCase, sevenNums[7], sumSet[35]; cin >> testCase; for(int tc = 1; tc > sevenNums[i]; for(int x = 0;..
[6190] : 정곤이의 단조 증가하는 수 입력 : N개의 정수 → 가능한 곱셈 조합을 알아보니까 계속 된 인덱싱이 필요하므로 벡터보다는 배열이 더 적합 출력 : 단조증가 수 중 가장 큰 곱셈조합 (없으면 -1) 전략 단조 증가하는 수 판별 법 : 10으로 나누어보았을 때 직전 나머지가 현재 나머지보다 커야 함 10보다 작은 수는 단조 증가로 판단하므로 do-while 사용 #include using namespace std; bool isItIncreasingNum(int); int main(void){ int testCase; cin >> testCase; for(int tc = 1; tc > N; int *numArr = new int[..
[6730] : 장애물 경주 난이도 입력 : 블록의 높이들 → 고정된 값이고, 삽입 삭제가 일어나지 않을 예정이므로 배열(: blocks)을 사용 출력 : 1) 올라갈 때 가장 심한 높이 변화 2) 내려갈 떄 가장 심한 높이 변화 전략 blocks[i - 1]과 blocks[i]를 비교해서 up인지 down인지 판별 방금 비교한 up / down이 maxUp / maxDown 보다 큰지 판별해서 업데이트 #include using namespace std; int main(void){ int testCase; cin >> testCase; for(int t = 0; t > blockCount; // blo..
이 글은 Vector와 Array 에 대해 다루겠습니다. 전체적인 내용은 eduCBA, cplusplus.com 등을 정리했습니다. 공부한 것을 정리하는 형식으로 작성되었으므로 오류가 있을 수 있습니다. 오류 발견시 댓글로 꼭 말씀해주세요! 시작해볼까요? 알고리즘 문제를 풀다보면 동적으로 원소들을 넣었다 뺐다 하는 경우가 많기 떄문에 거의 무조건적으로 vector를 쓰곤 합니다. 그래도 생각해 보면 배열을 또 아주 쓰지 않는 것은 또 아닙니다. 대학교에서 시험을 보기 위해서 공부 하던 당시 vector는 자료 접근을 자주 할 때 쓰지 않는 것이 좋다고 했던 기억이 아주 어렴풋이 있는데 그래도 뚜렷한 구분을 할 필요성은 느낍니다. (사실 프로그래머스의 이 모의고사 문제는 배열로 풀었어도 큰 무리는 없었을 ..
[1970] : 쉬운 거스름돈 #include using namespace std; void getChange(int); int main(void){ int testCase; cin >> testCase; for(int test = 0; test > changeM; getChange(changeM); } return 0; } void getChange(int money){ int mType[8]{0,}; int static trial = 1; while(money > 9){ if(money >= 50000){ mType[0] += 1; money -= 50000; } else if(money >= 10000){ mType[1] += 1..
[1859] : 백만 장자 프로젝트 #include using namespace std; int main(void) { int testCase; int day; cin >> testCase; long * ans = new long[testCase]; for (int i = 0; i > day; long * price = new long[day]; long total = 0; for (int j = 0; j > price[j]; long max = price[day - 1]; for (int j = day - 2; j > -1; j--) if (price[j] < max) total += (max - price[j]); else ma..
[1285] : 아름이의 돌 던지기 #include #include using namespace std; vector distAns; vector cntAns; void printAnswer(int); // output int getDistance(int*, int); int getCount(int*, int, int); int main(void){ int testCase; cin >> testCase; for(int test = 0; test > N; int * dist = new int[N]; for(int i = 0; i > dist[i]; if(dist[i] < 0) // 음수 쪽에 ..
[1986] : 지그재그 숫자 #include #include #include using namespace std; vector answer; void printAnswer(int); int main(void){ int testCase; cin >> testCase; for(int test = 0; test > num; for(int n = 1; n < num + 1; n++){ if(n % 2 == 0) sum -= n; else sum += n; } answer.push_back(sum); } printAnswer(testCase); return 0; } void printAnswer(int testCase){ for(in..
- Total
- Today
- Yesterday
- 컴과졸작
- 보안
- 운영체제
- 졸업작품
- C++
- 코테
- OS
- 데이터분석
- 부스트캠프
- TableView
- 부캠
- 컴퓨터공학
- 컴공졸작
- 알고리즘
- firebase
- 삼성
- 소프트웨어아카데미
- ios
- RxSwift
- SWIFT
- swacademy
- nosql
- 소프트웨어역량시험
- 인턴
- 개발자인턴
- 삼성소프트웨어아카데미
- 부스트캠프2020
- 커넥트재단
- 프로그래머스
- 코딩테스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |