본문 바로가기

백준 문제 풀이 & C++ 공부54

백준 18111번 C++ https://www.acmicpc.net/problem/18111 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net 이번에는 문제가 생각보다 어려운 문제였습니다. 알고리즘이 어려웠다기 보다는 푸는 방식에 대한 생각을 요구하는 문제였습니다. 저는 이 풀이 과정을 생각하게 된 계기는 숫자가 예시에서 63, 64로 너무 크게 나와서 숫자를 줄이면 더 쉽게 풀 수 있을 것이라는 생각이 들어서 landMin을 구한 다음에 모든 곳에서 뺐습니다. 여기서부터 문제의 풀이가 시작이 되었습니다. 결국에 제일 적게 드는 시간을.. 2021. 9. 1.
백준 10845번 C++ https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 아마 다들 이 이전에 올렸던 스택 문제를 푸셨으면 C++로는 쉽게 풀었을 것같습니다. 동일하게 queue 헤더 파일을 사용할 수 있는지를 묻는 문제였습니다. 따로 활용할 필요는 없었고 그대로 문자열을 받아 동일하게 수행하면 됩니다. #include #include #include #include using namespace std; int main(int argc, const ch.. 2021. 8. 29.
백준 10828번 C++ https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 이번 문제는 c++로 풀면 간단하게 stack을 활용할 수 있다면 쉽게 풀 수 있는 문제입니다. 문제를 풀면서 큰 어려움은 없었습니다. 다들 쉽게 풀 수 있을 것이라고 생각합니다. #include #include #include #include using namespace std; int main(int argc, const char* argv[]) { int n;//명령 수 s.. 2021. 8. 19.
백준 10816번 C++ & upper_bound, lower_bound https://www.acmicpc.net/status?user_id=jjune0461&problem_id=10816&from_mine=1 채점 현황 www.acmicpc.net 이번 문제는 처음에 그냥 생각나는 가장 쉬운 방법은 프루트포스로 시작을 했습니다. 솔직히 난이도에 맞지 않는 것은 확실하지만 그냥 해보았고 역시나 시간초과가 발생했습니다. 그 다음에 생각을 한 방법은 이진 탐색이었습니다. 이진탐색으로 하려고 생각을 하다가 만약에 상황이 다음과 같다고 가정을 해봅시다. 1 2 3 3 3 3 3 3 4 5 이렇게 되어있다면 같고 싶은 값이 3이라고 했을 때 이진 탐색을 통해서 3을 찾는다면 중앙값이 3인데 앞, 뒤로 얼만큼 더 가야하는지 코딩하기가 너무 어려울 것 같다는 생각을 하게되었습니다. 다양.. 2021. 8. 18.