usaco 8

백준 14469번 소가 길을 건너간 이유 3

문제 링크입니다: https://www.acmicpc.net/problem/14469 14469번: 소가 길을 건너간 이유 3 이웃 농장의 소가 길을 마구잡이로 건너는 것에 진절머리가 난 존은 극단의 결정을 내린다. 농장 둘레에 매우 큰 울타리를 짓는 것이다. 이렇게 하면 근처 농장 출신의 소가 들어올 일이 거의 없 www.acmicpc.net 시간을 기준으로 오름차순, 시간이 동일하다면 대기 시간을 기준으로 오름차순 정렬을 하면 쉽게 풀 수 있는 문제였습니다. 개발환경:Visual Studio 2022 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2024.04.08

백준 5928번 Contest Timing

문제 링크입니다: www.acmicpc.net/problem/5928 5928번: Contest Timing Bessie the cow is getting bored of the milk production industry, and wants to switch to an exciting new career in computing. To improve her coding skills, she decides to compete in the on-line USACO competitions. Since she notes that the contest starts on www.acmicpc.net 예외처리만 신경써준다면 어렵지 않게 풀 수 있는 구현 문제였습니다.

알고리즘/BOJ 2021.03.11

백준 5893번 17배

문제 링크입니다: www.acmicpc.net/problem/5893 5893번: 17배 첫째 줄에 이진수 N이 주어진다. N은 최대 1000자리인 이진수이며, 0이 들어오는 경우는 없다. www.acmicpc.net 저는 문자열을 이용하여 무식하게 풀었는데 다른 분들의 풀이를 보면 C++로도 훨씬 간단하게 풀 수 있는 문제였습니다. 알고리즘은 아래와 같습니다. 1. 주어진 이진수를 십진수로 변환합니다. 2. 1번에서 구한 십진수에 17을 곱합니다. 3. 2번에서 구한 십진수를 다시 이진수로 변환하여 출력해줍니다.

알고리즘/BOJ 2021.03.11

백준 11973번 Angry Cows(Silver)

문제 링크입니다: https://www.acmicpc.net/problem/11973 모든 소를 하나 하나 터뜨려보면서 최대 연쇄폭파 횟수를 업데이트 해주면 되는 문제였습니다. #include #include using namespace std; const int MAX = 50000; int N, K; int hay[MAX]; int main(void) { ios_base::sync_with_stdio(0); cin.tie(0); cin >> N >> K; for (int i = 0; i > hay[i]; sort(hay, hay + N); //폭파 범위 int range = 1; while (1) { int cnt = 0, idx = 0; while (1) { //K마리의 ..

알고리즘/BOJ 2018.09.23

백준 11977번 Angry Cows(Bronze)

문제 링크입니다: https://www.acmicpc.net/problem/11977 모든 소를 터뜨려보면서 최대 연쇄횟수가 몇 번인지를 확인하면 되는 문제였습니다. #include #include #include #include using namespace std; const int MAX = 100; int N, result; int hay[MAX]; bool visited[MAX]; void explode(int index) { queue q; //idx, range q.push({ index, 1 }); visited[index] = true; while (!q.empty()) { int idx = q.front().first; int range = q.front().second; q.pop();..

알고리즘/BOJ 2018.09.23

백준 15753번 Taming the Herd

문제 링크입니다: https://www.acmicpc.net/problem/15753 문제에서 요구하는 바를 이해하는데 매우 오래 걸린 문제였습니다. 알고리즘은 아래와 같습니다.1. 해당 카운터에 모순이 없는지를 확인합니다.i) i번째에 적혀 있는 일 수가 (현재 - 마지막 탈출)보다 크거나ii) (현재 - 적혀 있는 일)에는 탈출한 적이 없는 것이 확실하면 모순입니다.2. 모순이 없다면 반복문을 돌면서 마지막 탈출 일 수를 표시하고 확실하게 탈출하지 않은 날들을 표시합니다.3. 탈출한 날들의 합의 최소는 확실하게 탈출한 날만 셀 경우입니다.4. 탈출한 날들의 합의 최대는 전체 일 수에서 확실하게 탈출하지 않은 날들을 제외한 경우입니다. #include #include using namespace std..

알고리즘/BOJ 2018.09.15

백준 15751번 Teleportation

문제 링크입니다: https://www.acmicpc.net/problem/15751 이 문제는 사실 단순 계산을 통해 아래와 같은 세 가지 중 최소를 출력해주면 되는 문제였습니다.1. A ~ B까지 뚜벅뚜벅2. A -> X -> Y -> B3. A -> Y -> X -> B 저도 위 세 가지 경로를 고려했지만 바보 같이 BFS(Breadth First Search)를 사용하여 코드 길이만 엄청 길어졌네요.#include #include using namespace std; bool visited[100 + 1]; int main(void) { ios_base::sync_with_stdio(0); cin.tie(0); int a, b, x, y; cin >> a >> b >> x >> y; queue q..

알고리즘/BOJ 2018.09.15