코딩테스트

    [실3] 1021 - 회전하는 큐

    #include #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0), cout.tie(0); int s, n, cnt = 0; cin >> s >> n; deque dq; for (int i = 1; i > num; for (int i = 0; i < s; i++) { if (dq[i] == num) { idx = i; break; } } for (int i = 0; i < dq.size(); i++) { if (dq.front() == num) { dq.pop_front(); break; } if (idx < dq.size() / 2 + 1) { dq.push_back(dq..

    [골5] 2023 - 신기한 소수

    #include #include #include #include using namespace std; int n = 0; bool Prime(int num) { for (int i = 2; i * i

    [골2] 10800 - 컬러볼

    #include #include #include #include using namespace std; struct sColorBall { int n, color, size; sColorBall() = default; sColorBall(int n, int color, int size):n(n),color(color),size(size) { } }; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; vector vecBall(n); for (int i = 0; i > vecBall[i].color >> vecBall[i].size; } sort(vecB..

    구조체 또는 클래스 관련 정렬 (sort 함수)

    구조체 또는 클래스는 항상 연산자 오버로딩을 해줘야하고 클래스명으로 가야한다. struct Student { int id, pow; char team; Student(int a, char b, int c) : id(a),team(b),pow(c) { } bool operator(const Student& b) const { return pow > b.pow; } }; 여기서 pow 기준으로 정렬할텐데 이때 algorithm 헤더파일 내에 sort 함수를 사용하고 pred 인자로 해당 연산자 오버로딩 함수를 보내주면 된다. 디폴트 값 : less(); vector st; // pred 템플릿 인자로 무조건 클래스명으로 줘야한다. sort(st.begin(), st.end(), greater()); less..

    문자열 (소문자 대문자 변환) transform 함수

    algorithm 헤더파일 내에 있다 toupper (대문자), tolower(소문자) 그리고 :: 익명 네임스페이스 무조건 붙여야한다. #include #include #include using namespace std; int main() { string str1, str2; cin >> str1 >> str2; transform(str1.begin(), str1.end(), str1.begin(), ::toupper); transform(str2.begin(), str2.end(), str2.begin(), ::tolower); cout

    최솟값과 최댓값 표현하기

    #include #include // 자료형의 최댓값과 최솟값이 정의된 헤더 파일 int main() { char num1 = CHAR_MIN; // char의 최솟값 short num2 = SHRT_MIN; // short의 최솟값 int num3 = INT_MIN; // int의 최솟값 long num4 = LONG_MIN; // long의 최솟값 long long num5 = LLONG_MIN; // long long의 최솟값 // char, short, int는 %d로 출력하고 long은 %ld로 출력, long long은 %lld로 출력 printf("%d %d %d %ld %lld\n", num1, num2, num3, num4, num5); // -128 -32768 -2147483648 -..

    2016년 - Level1

    2016년 1월 1일은 금요일이므로 배열은 금요일부터 시작 day는 2016년 1~12월까지에 대한 일수다. 공식으로 간단하게 풀 수 있는 문제다. #include #include using namespace std; string solution(int a, int b) { string week[7]{"FRI","SAT","SUN","MON","TUE","WED","THU"}; int day[]{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int val=0; for(int i=0;i week[4] = "TUE" }

    [3] 네트워크

    #include #include using namespace std; bool vis[1000]{false}; void dfs(vector computers, int start) { vis[start] = true; for (int i = 0; i < computers[start].size(); i++) { if (!vis[i] && computers[start][i]) dfs(computers, i); } } int solution(int n, vector computers) { int answer = 0; for (int i = 0; i < n; i++) { if(!vis[i]) { dfs(computers, i); answer++; } } return answer; }

    C++ stringstream 사용법 (문자열에서 공백 제외 추출, 특정값)

    1) 문자열을 나누는 stringstream C++에서 stringstream은 주어진 문자열에서 필요한 자료형에 맞는 정보를 꺼낼 때 유용하게 사용된다. stringstream에서 공백과 '\n'을 제외하고 문자열에서 맞는 자료형의 정보를 빼낸다. ˙ #include 전처리 헤더를 필수로 포함해야 한다. ˙ stream.str(string str) 은 현재 stream의 값을 문자열 str로 바꾼다. int num; string str = "123 456"; stringstream stream; stream.str(str); while(stream1 >> num ) cout num ) cout

    C++ max_element(), min_element() 최대값, 최소값

    C++에서는 이 기능을 #include 에서 제공한다. max_element()나 min_element()는 둘다 모든 요소에 접근을 해야 하기 때문에, 모든 STL 컨테이너에 대해서 선형으로 동작한다. 즉 시간 복잡도가 O(n)이다. template ForwardIterator max_element (ForwardIterator first, ForwardIterator last); template ForwardIterator max_element (ForwardIterator first, ForwardIterator last, Compare comp); template ForwardIterator min_element (ForwardIterator first, ForwardIterator last); ..