백준 11866번 C++ https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 다른 블로그 글들을 찾아보았는데 상위권에 있는 글들이 큐로 풀어져있었습니다. 저는 완전히 다른 방식으로 문제를 풀어서 나름 공부가 되었던 것 같습니다. 큐를 통해서 코딩을 한 것보다 제 코드가 더럽긴 하지만 제 코드를 보고 이렇게도 가능하구나를 한번 느끼셨으면 좋겠습니다. 저는 정말 1차원적으로 생각을 했습니다. 이미 없어진 사람은 없애고 넘으면 다시 원점으로 가서 숫자를 세는 방식을 채택했습니다. 코드는 길지만 아마 코드를 읽어보신다면 이해는 빠르게 될 것입니다. #include.. 2021. 9. 1. 백준 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이번 문제는 처음에 그냥 생각나는 가장 쉬운 방법은 프루트포스로 시작을 했습니다.솔직히 난이도에 맞지 않는 것은 확실하지만 그냥 해보았고 역시나 시간초과가 발생했습니다. 그 다음에 생각을 한 방법은 이진 탐색이었습니다.이진탐색으로 하려고 생각을 하다가 만약에 상황이 다음과 같다고 가정을 해봅시다.1233333345이렇게 되어있다면 같고 싶은 값이 3이라고 했을 때이진 탐색을 통해서 3을 찾는다면 중앙값이 3인데 앞, 뒤로 얼만큼 더 가야하는지 코딩하기가 너무 어려울 것 같다는생각을 하게되었습니다. 다양한 방식으로 생각을 해보다가 .. 2021. 8. 18. 백준 10814번 C++ 이 문제를 완벽하게 이해하고 풀기 위해서 vector cotainer, pair, sort, stable_sort를 공부하였습니다. pair를 제외하고는 다 제 블로그 안에 글들이 있으니 혹시 잘 모르신다면 한번 보시고 문제를 푸시는 걸 추천드립니다. https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 이 문제에서 중요한 사항중에 하나는 sort와 stable_sort의 차이점을 아는 것이 중요했던 것 같습니다. 불안정정렬을 사용할 경우 나이가 같다면 .. 2021. 7. 7. C++ sort & stable_sort sort는 불안정정렬이고 stable_sort는 안정정렬입니다. 이 두가지의 차이점을 먼저 말씀드리겠습니다. 배열이 다음과 같이 나와있을 수 있습니다. 이게 정렬 전 배열입니다. 같은 숫자는 자신의 앞과 뒤의 순서를 알아볼 수 있도록 색깔을 빨강(선) - 주황(후)로 하겠습니다. 일반적인 stable_sort(안정정렬)은 다음과 같이 정렬이 완성됩니다. 순서가 바뀌지 않고 정렬이 완성이 됩니다. 하지만 정렬이 되지 않은 배열을 sort로 정렬하면 다음과 같이 됩니다. 위의 결과와 같이 먼저 왔다고 해서 배열의 앞순서로 온다는 보장이 없습니다. 그렇기에 불안정정렬이라고 합니다. 물론 78의 순서도 서로 달라질 수 있고 25의 앞, 뒤 순서가 올바르게 될 수도 있습니다. 이러한 요소를 잘 고려해서 코딩을 만.. 2021. 7. 7. C++ Vector Container 백준 문제를 풀다가 어떻게 풀어야할지 생각을 하다가 떠오르는 방법이 모두 마음에 들지 않아서 다른 사람들의 풀이를 보다가 vector를 사용하는 것을 보고 이것이 무엇인지 흥미를 가지게 되었습니다. vector Container? vector 컨테이너는 자동으로 메모리가 할당되는 배열입니다. vector를 생성하면 메모리 heap에 생성되며 동적할당됩니다. 속도적인 측면에서는 배열에 비해 성능이 떨어지지만 메모리를 효율적이로 관리하고 예외처리가 쉽다는 장점이 있기 때문에 사용을 합니다. vector는 배열과 마찬가지로 원소들이 하나의 메모리 블록에 연속되게 저장됩니다. 원소가 추가되거나 삽입될 때 메모리 재할당이 발생할 수 있고 상당한 부하가 발생하는것이 단점입니다. C++의 vector는 C++ 표준라.. 2021. 7. 5. 백준 9012 C++ & cin.ignore() https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 이 문제를 풀면서 배운 점은 일단 cin.ignore()에 관해서 배웠습니다. 코드의 제일 밑에 보면 expression string subscript out of range c++이 있는데 이게 제가 처음 코딩을 하고 나서 생긴 오류입니다. 이러한 에러를 처음 만나봐서 해결 방법을 위해 검색을 하였습니다. 그러다가 cin.ignore에 관해서 발견을 하였고 이것을 .. 2021. 7. 4. 이전 1 ··· 5 6 7 8 9 10 다음