CS 56

백준 2785번: 체인 - C++ 탐욕(Greedy)알고리즘

https://www.acmicpc.net/problem/2785   문제를 이해하는데 시간이 좀 걸렸다. 주어진 체인들의 고리를 풀어서 연결하여 하나의 긴 체인으로 만들어야 한다.가장 적은 수의 고리를 사용하려면 가장 짧은 체인의 고리를 풀어 가장 긴 체인들을 묶는데 사용해버리는 것이 유리. 가장 짧은 체인부터 사용하게 될 경우 결과적으로 연결해야하는 체인의 수가 줄어들어 더 적은 고리를 사용할 수 있다.체인을 모두 연결했을 때, 사용하던 체인의 고리가 남아버리는 것은 상관 없다. 길이가 각각 7 3 1 8 9 4 인 체인 6개가 입력으로 들어왔을 때,제일 앞에서부터 순서대로 묶어버리는 경우길이가 7인 체인의 고리 하나를 사용해 3 1을 묶고,그 다음 8 체인과, 3과 1이 묶여서 4가 된 체인을 또 ..

CS/코딩테스트 2025.03.24

코딩 표준(Coding Standard)

코딩 표준(Coding Standard)코드를 작성하는데 지켜야하는 프로그래밍 이름 규칙, 작성 방법 등을 지정한 가이드라인코딩 스타일(Coding Style), 코딩 컨벤션(Coding Convention)이라고도 함회사나 팀 내의 코딩 규칙을 잘 따라야함,모든 코드는 한 사람이 만든 것처럼 보여져야함. 아래는 내가 기준으로 삼고 있는 작성 규칙https://docs.popekim.com/ko/coding-standards/cpp | 포프님이 정리하신 C++ 코딩 스탠다드 C++ 코딩 표준 | 포프의 문서창고TOP 개발자에게 배우는 컴공수업 | 수업료는 최저시급, 난 최고연봉 | 프로그래밍 공부순서 야근 없이 오직 실력으로 대우받는 프로그래머가 되고 싶다고요? POCU 아카데미에서 시작하세요!docs...

CS 2024.10.31

C++ <sstream> - getline과 stringstream 문자열 분리

문자열에서 필요한 자료형에 맞는 데이터를 꺼내기 문자열을 입력받고 공백을 기준으로 단어 개수를 세는 코드#include #include #include using namespace std;int main() { string s, word; int num = 0; getline(cin, s); // 공백을 포함하여 문자열 입력받기 stringstream ss(s); // 입력받은 문자열을 sringstream으로 변환 while (ss >> word) { // ss에서 공백 또는 개행문자를 기준으로 string타입으로 데이터 나눠 꺼내기 num++; // 꺼내진 데이터를 vector에 저장할 수 있음 } // getline..

CS/C++ 2024.10.25

나머지 연산(%)의 분배법칙 (정리 필요)

나머지 연산은 일반적인 분배법칙이 성립되지 않는다.(A+B)%C와 (A%C) + (B%C)는 같지 않고, (A×B)%C와 (A%C)×(B%C)는 같지 않다.(A+B)%C는 ((A%C) + (B%C))%C와 같다. 나머지 연산 증명 참고https://lypicfa.tistory.com/638 C(&C++) 실습 5. (A+B)%C == ((A%C) + (B%C))%C // 증명문제 출처 backjoon 10430번 문제 0. 문제 ⅰ. 세 수 A, B, C가 주어졌을 때, 아래의 네 가지 값을 구하는 프로그램을 작성하시오. ■ (A+B)%C는 ((A%C)+(B%C))%C 와 같을까? ■ (A×B)%C는 ((A%C)×(B%C))%C 와 같을까?lypicfa.tistory.com  페르마 소정리와 모듈러 연산..

CS/코딩테스트 2024.10.25

알고리즘 기초 - 경로 탐색 알고리즘

너비 우선 탐색(Breadth-First Search, BFS)그래프를 탐색하는 알고리즘이다. 시작 노드에서 가장 가까운 노드부터 시작하여 모든 노드를 광범위하게 탐색한다. 두 노드 사이에 경로가 있는지 확인하고 그 사이의 최단 경로를 결정한다.너비 우선 탐색 알고리즘은 기본적으로 0층에서 시작하며 다음 층으로 이동하기 전에 해당 층의 모든 노드를 방문할 때까지 수평으로 이동한다.즉, 한 번 거친 노드 순서를 저장한 후 다시 꺼내는 선입선출 원칙으로 탐색한다. 주로 큐를 이용해 구현한다. 루트 노드 1에서 시작하여 값이 7인 노드에 도달하려고 하는 경우, 1에서 가장 가까운 2, 3을 탐색한다.그 다음 2에서 가장 가까운 4, 5, 6, 7을 탐색하여 7에 도달한다. 깊이 우선 탐색(Depth-First..

CS/알고리즘 2024.07.29

알고리즘 기초 - 정렬 알고리즘

정렬이진 탐색은 알고리즘을 수행하기 전에 데이터를 비교하도록 특정 순서로 배열을 정렬한다. 데이터베이스는 쿼리를 실행하여 특정 속성에 따라 배열을 정렬한다.데이터를 정렬하면 알고리즘이 중복 데이터를 빠르게 식별하거나 필요한 데이터를 매우 빠르게 찾을 수 있다.  버블 정렬(Bubble Sort)1. 배열의 왼쪽 끝에 있는 두 요소(숫자)를 확인한다.2. 두 요소를 비교하여 오른쪽이 왼쪽보다 크면 두 요소의 위치를 바꾼다.3. 원래 자리에서 오른쪽으로 한 자리 이동하여 두 요소를 비교한다.4. 두 요소를 비교하여 오른쪽이 왼쪽보다 크면 두 요소의 위치를 바꾼다.반복하여 결국 배열에서 가장 큰 숫자가 배열의 가장 오른쪽으로 이동하면해당 요소는 정렬이 완료된 것으로 간주한다.배열의 요소가 모두 정렬될 때까지 ..

CS/알고리즘 2024.07.23
반응형