본문 바로가기
백준 1003번 C++ https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 이번 문제에서 처음에 피보나치를 재귀로 풀었을 때의 C++코드를 줘서 어...? 왜 친절하지라고 생각을 하고 그 함수 그대로 사용해서 코드를 다음과 같이 만들었습니다. 당연하게도 밑에 코드는 실패한 코드입니다. #include using namespace std; int zeroCount = 0, oneCount = 0; int fibonacci(int n) { if (n == 0) { zeroCount++; return 0; } else if (n == 1) { oneCount++; retu.. 2021. 9. 12.
Unity C#으로 꾹 눌렀을 때 상태변화 시키기 농장 게임을 만들다가 밭을 선택할 때 꾹 눌렀을 시 밭에 작물을 심을 수 있도록 하는 코드를 만들기 위해서 고민을 하다가 여러가지 방식을 고민했습니다. 1. 타이머 방식 이 방식을 고민했을 때 IPointerEnter일 때 bool값을 true로 돌려서 Update에서 실행되는 함수를 만들 다음 일정 시간 즉, Time.deltatime이 지나면 실행시키는 방식을 생각했습니다. 하지만 이 방식은 꾹 누른다는게 아닌 그 안에 들어가있다는 것을 의미해서 제가 원하는 풀이 방식이 될 수 없었습니다. 2. 코루틴을 활용한 방식. 이 방식을 생각하고 나서 여러가지 방법을 시도한 끝에 이 방식으로 풀게 되었습니다. IPointerDownHandler와 IPointerUpHandler를 통해서 OnPointerDow.. 2021. 9. 10.
백준 11651번 C++ https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 이 문제말고 다른 문제인 좌표정렬하기1? 이라고 해야하나.. 1번 좌표 정렬하기 문제를 풀었을 때는 sort를 사용할 때 그냥 vector를 sort(a.begin(), a.end());를 사용하면 자동으로 a.frist를 비교하고 b.frist를 비교해서 출력을 해주기 때문에 사용자 정의 함수를 코딩할 필요가 없었습니다. 하지만 이 문제는.. 2021. 9. 3.
백준 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.