알고리즘 문제에서 시간제한이 있다. 시간제한에 대해 자신의 코드가 최악의 경우에 몇 초정도 나오는지 시간함수를 통해정확히 알아낼 수도 있지만 대략 짐작을 빠르게 할 수 있다. 시간 복잡도 표기법에는 3개가 있다.빅오 표기법 : 알고리즘 실행시간의 상한오메가 표기법 : 알고리즘 실행시간의 하한세타 표기법 : 알고리즘 실행시간의 평균시간 먼저, 자신의 코드의 시간복잡도 빅오를 계산한다. 대부분의 코드가 n제곱이거나 n로그n인 경우가 많다.그 후 문제의 제한 범위를 고려하여 입력이 몇개 들어가는지 고려한다. 대략, n삼승의 알고리즘은 2560의 입력까지 1초 안에 풀 수 있다.n제곱의 알고리즘은 40960의 입력까지 1초 안에 풀 수 있다.n로그n의 알고리즘은 20,000,000의 입력까지 1초 안에 풀 수 ..
Pair 페어두 객체를 하나의 객체로 묶어 앞을 first, 뒤를 second라 칭한다.헤더에 존재하며 vector와 함께 많이 사용한다. pair 안에 또 pair를 넣을 수도 있다. pair만 사용하는 경우pair p; // 자료형은 마음대로 지정 가능, 서로 다르게도 가능 int n1 = 1;double n2 = 2;pair = make_pair(n1,n2); // p.first은 1, p.second는 2 pair p2; // pair안에 pair 벡터와 사용하는 경우vector v;v.push_back(make_pair(1,2)); // v[0].first는 1, v[0].second는 2 pair는 알고리즘 문제 중에 좌표 쌍을 이용하는 경우 이용하면 편리한 것 같다. 작성자 : 히더
SW Expert Academy :: SWEA :: 5521 :: 상원이의 생일파티 출처 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWWO3kT6F2oDFAV4&categoryId=AWWO3kT6F2oDFAV4&categoryType=CODE #include #include using namespace std; int main() {int T; scanf("%d", &T);for (int tc = 1; tc > v(501);bool c[501] = { 0, }; c[1] = 1;while (M--) {scanf("%d %d", &a, &b); v[a].push_..
Vector 벡터배열 기반의 컨테이너이다. 벡터를 통해 동적으로 확장 축소가 가능하며 벡터의 맨 앞, 끝에 삽입/삭제가 빠르다. 또한 함수를 통해 다양한 기능이 있으며개별 원소들에 대한 iterator, position index접근이 가능하다. 원소 중간에 삽입/삭제는 느리므로 list를 사용하는게 좋고 많은 양보다는 적은 양의 자료일때 유용하다.그리고 동적으로 되므로 메모리에 주의하여 사용하여야 한다. #include vector v : int형 vector v 선언vector v(n) : n개의 원소를 가진 v 선언vector v(n,a) : a로 초기화된 n개의 원소를 가진 v 선언vector v(v2) : vector v2를 v에 복사 v.assign(n,a) : a값으로 n개의 원소를 v에 할..
2018 KAKAO BLIND RECRUITMENT :: 2018 카카오 블라인드 채용 1차 코딩 테스트 :: 뉴스 클러스터링 출처 : https://programmers.co.kr/learn/courses/30/lessons/17677 #include #include using namespace std; inline bool check(char a, char b) { return (a >= 65 && b >= 65 && a
2018 KAKAO BLIND RECRUITMENT :: 2018 카카오 블라인드 채용 1차 코딩 테스트 :: 셔틀버스 출처 : https://programmers.co.kr/learn/courses/30/lessons/17678# #include #include #include using namespace std; string solution(int n, int t, int m, vector timetable) {string answer = "";int arr[2000], ans;int num = timetable.size();for (int i = 0; i < num; i++) {arr[i] = ((((timetable[i].at(0) - '0') * 10) + (timetable[i].at(1) -..
char를 사용하면 아스키 코드가 필요할 때가 있다. 자주 쓰는 것은 char로 정수를 받아 쓰고 싶을 때 '0'을 빼줄 때가 많다. 이유는 아스키코드표를 보면 알 수 있다. 자주 쓰는 것을 정리하면0 ~ 9 : 48 ~ 57 // '0' (48) 을 빼주면 10진수로 변환된다. A ~ Z : 65 ~ 90 // 대문자와 소문자는 32 차이가 난다.a ~ z : 97 ~ 122 사진 출처 : http://hack-cracker.tistory.com/166 작성자 : 히더
#include front: 문자열의 제일 앞 stoi : 문자열 숫자로 변환 back : 문자열의 제일 뒤 length : 문자열 길이 반환 erase : 문자열 지우기 clear : 문자열 내용 삭제 empty : 문자열 비었는지 확인 compare : 문자열 비교 assign : 문자열 할당 append : 문자열를 뒤에 더해줌 find : 특정 문자열 찾기 capacity : 메모리 크기 반환 replace : 문자열 대체 reserve : 메모리 최소용량 지정 insert : 문자열 삽입 substr : 서브 스트링 c_str : string을 char*로 변환 at :특정 위치 문자열 pop_back : 제일 뒤에 문자열 빼기 push_back : 문자열 제일 뒤에 추가 resize : 문자열..
- Total
- Today
- Yesterday
- 이차원 배열과 연산
- 2018 KAKAO BLIND RECRUITMENT
- 연구소 3
- 입출력
- hackerrank
- 2018 카카오 블라인드 채용
- STL
- 시간 복잡도
- 17140
- string
- DFS
- 백준
- SW Expert Academy
- SWEA
- 미세먼지 안녕!
- DP
- 팁
- 17144
- 17779
- boj
- 삼성
- scanf
- 17143
- 트렌드
- 새로운 게임 2
- 알고리즘
- 17837
- 게리맨더링 2
- 역량 테스트
- 17142
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |