백준 문제풀이

백준 문제풀이

백준 2805번 - 나무 자르기 (python)

https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 해당 문제를 작년에 풀려고 했을 때 해당 코드를 작성했었다. (C++로 했으니 양해..) #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); long long n, m; // n = 나무 수, m..

백준 문제풀이

백준 6593번 - 상범 빌딩(python)

https://www.acmicpc.net/problem/6593 6593번: 상범 빌딩 당신은 상범 빌딩에 갇히고 말았다. 여기서 탈출하는 가장 빠른 길은 무엇일까? 상범 빌딩은 각 변의 길이가 1인 정육면체(단위 정육면체)로 이루어져있다. 각 정육면체는 금으로 이루어져 있어 www.acmicpc.net 해당 문제를 본 순간 떠오른 문제가 있다. https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 바로 이 토마토 문제이다...

백준 문제풀이

백준 2146번 - 다리 만들기(python)

https://www.acmicpc.net/problem/2146 2146번: 다리 만들기 여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은 섬을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다 www.acmicpc.net 우선 해당 문제의 사고 과정은 다음과 같다. A라는 섬과 B라는 섬이 있을 때, 두 섬은 구분이 되어야하는가? → 그렇다. 그렇다면 구분은 어떻게 할까? → 숫자를 1, 2, 3 이런 식으로 구분시키자. 이제 섬 영역들 하나씩 BFS를 돌리자. 우선 각 섬 구분은 bfs를 돌리면서 진행했다. def divide_bfs(x, y): q = deque() q.append((x, y)) visited[x][..

백준 문제풀이

백준 17298번 - 오큰수(c++)

https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 우선 처음 떠올린 풀이는 이랬다. #include using namespace std; int v[1000004]; int result[1000004]; int n; int temp; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n; for(int i = 0; i > v[i]; }..

백준 문제풀이/실버3

백준 15353번 - 큰 수 A+B(2)

https://www.acmicpc.net/problem/15353 15353번: 큰 수 A+B (2) C++17, C11, C99, C++98, C++11, C++14, C99 (Clang), C++98 (Clang), C++11 (Clang), C++14 (Clang), C11 (Clang), C++17 (Clang) www.acmicpc.net 초등학교 산수시간에 배운 매우 고전적인 방법을 사용해야 한다. 문자열로 받아서 산수를 해준다. 계산을 편하게 하기 위해서 역순을 해준다음에 길이가 짧은 쪽에 0을 그냥 붙여주고 시작했다. #include using namespace std; int main() { std::cin.tie(NULL); std::cout.tie(NULL); std::ios::sy..

백준 문제풀이/실버3

백준 1002번 - 터렛

https://www.acmicpc.net/problem/1002 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 조규현과 백승환의 좌표가 있을 때, 적과의 거리가 주어지고, 교점을 구하라는 뜻이다. 거리가 주어지고, 원의 정의 자체가 어떤 한 점으로부터 거리가 일정한 점의 집합이기에 원이라는 것을 알아냈다. 즉 두 원이 있고 그 원들의 교점을 구하면 되는 문제이다. 학창 시절에 내접원, 외접원 등등을 배운 기억이 날 것이다. 코드를 보며 좀 더 케이스 분류 해보자. #include using namespace std; int main() { std::cin.t..

백준 문제풀이/실버3

백준 3273번 - 두 수의 합

처음 생각한 코드는 이렇다. #include using namespace std; int main() { std::cin.tie(NULL); std::cout.tie(NULL); std::ios::sync_with_stdio(false); int n, temp, target; cin >> n; vector v(n); for(int i = 0; i > temp; v.at(i) = temp; } sort(v.begin(), v.end()); cin >> target; int cnt = 0; for(int i = 0; i i; j--) { const int sum = v[i] + v[j]; if (sum > target)..

백준 문제풀이/실버3

백준 1388 - 바닥 장식

https://www.acmicpc.net/problem/1388 1388번: 바닥 장식 형택이는 건축가이다. 지금 막 형택이는 형택이의 남자 친구 기훈이의 집을 막 완성시켰다. 형택이는 기훈이 방의 바닥 장식을 디자인했고, 이제 몇 개의 나무 판자가 필요한지 궁금해졌다. 나 www.acmicpc.net #include using namespace std; int main() { std::cin.tie(NULL); std::cout.tie(NULL); std::ios::sync_with_stdio(false); int n, m; int c = 0; string s[105]; cin >> n >> m; for (int i = 0; i > s[i]; for (int i = 0; i..

void_melody
'백준 문제풀이' 카테고리의 글 목록