본문 바로가기

BOJ749

[자바] 백준 1517 - 버블 소트 (java) 문제 : boj1517 필요 알고리즘 개념 세그먼트 트리, 펜윅트리 등의 구간 쿼리 알고리즘 이 문제의 경우 분할 정복을 통해서도 풀 수 있는 것으로 알고 있다. 그리고 또다른 정해로 구간 쿼리 알고리즘을 사용해서도 일반적으로 Inversion Counting이라 불리는 기법으로 풀 수 있다. 정렬 정렬하는 방법을 알아야 한다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 버블 소트의 경우 O(N^2)이 필요하다. 따라서 .. 2022. 8. 17.
[자바] 백준 21312 - 홀짝 칵테일 (java) 문제 : boj21312 필요 알고리즘 개념 짝수, 홀수 판정 짝수와 홀수 판정하는 방법을 알아야 한다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 문제에서 제시된 조건을 고유 번호의 곱에 해당하는 '맛'을 기준으로 다시 살펴보자. 임의의 맛 X와 맛 Y가 있다고 해보자. 1. X가 홀수이고, Y가 짝수라면 무조건 X가 더 맛있다. 2. X가 짝수이고, Y가 홀수라면 무조건 Y가 더 맛있다. 3. X가 홀수이고, Y가 홀.. 2022. 8. 17.
[자바] 백준 4562 - No Brainer (java) 문제 : boj4562 필요 알고리즘 개념 입출력 기본적으로 입력을 올바르게 받고, 원하는걸 출력 할 수 있으면 풀 수 있다. 조건문, 반복문 입력받을 때 반복문을 통해 원하는 횟수만큼 입력을 받을 수 있어야 하고 매번 조건문을 통해 답을 판단해줘야 한다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 문제풀 때 기초가 되는 입출력과 반복문 문제이다. 차후 이런방식으로 입력받는 경우가 많으므로 그 연습이라고 보면 될 것 같다.. 2022. 8. 17.
[자바, C++] 백준 10999 - 구간 합 구하기 2 (java cpp) 문제 : boj10999 필요 알고리즘 개념 lazy propagation을 적용한 세그먼트 트리 혹은 펜윅 트리 세그먼트 트리 + lazy propagation 혹은 range update, range query가 가능한 펜윅 트리를 알고 있어야 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 세그먼트 트리 lazy propagation 혹은 range update, range query 펜윅 트리의 기본형태 .. 2022. 8. 15.
[자바] 백준 2820 - 자동차 공장 (java) 문제 : boj2820 필요 알고리즘 개념 lazy propagation을 적용한 세그먼트 트리 혹은 펜윅 트리 세그먼트 트리 + lazy propagation 혹은 range update가 가능한 펜윅 트리를 알고 있어야 풀 수 있다. 오일러 경로 테크닉 내 경우엔 이런게 있는줄 모르고 풀고보니 내가 한게 이거였다. 그러니 필요한 알고리즘 개념은 아니다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 1. a의 모든 부하의.. 2022. 8. 15.
[자바, C++] 백준 16975 - 수열과 쿼리 21 (java cpp) 문제 : boj16975 필요 알고리즘 개념 lazy propagation을 적용한 세그먼트 트리 혹은 펜윅 트리 세그먼트 트리 + lazy propagation 혹은 range update가 가능한 펜윅 트리를 알고 있어야 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 세그먼트 트리 lazy propagation 혹은 range update 펜윅 트리의 기본형태 문제이다. 펜윅 트리로 풀려면 작성해둔 펜윅 트.. 2022. 8. 15.
[자바, C++] 백준 11658 - 구간 합 구하기 3 (java cpp) 문제 : boj11658 필요 알고리즘 개념 다차원 펜윅 트리, 세그먼트 트리 펜윅 트리 혹은 세그먼트 트리를 2차원에 대해 적용할 수 있어야 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 다차원 펜윅 트리, 세그먼트 트리 등으로 풀 수 있는 기본형태의 문제이다. 펜윅 트리로 풀려면 작성해둔 펜윅 트리 글에서 '응용 1' 부분을 읽어보면 이 문제를 풀 수 있다. 코드(C++) : github #include #.. 2022. 8. 15.
[자바] 백준 7578 - 공장 (java) 문제 : boj7578 필요 알고리즘 개념 제곱근 분할법, 펜윅 트리, 세그먼트 트리 등 구간 쿼리 알고리즘(자료구조)를 알고 있어야 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 언제 줄이 꼬일지만 찾는다면 어떻게 해결해야할지 알 수 있다. 아래와 같이 식별번호대신 A에 나열되 있던 순서대로 번호를 매겨서 그걸 B에도 동일한 식별번호에 작성해보자. 만약 B가 A와 동일한 순서대로였다면 0-1-2-3-4가 됬을.. 2022. 8. 12.
[자바, C++] 백준 2042 - 구간 합 구하기 (java cpp) 문제 : boj2042 필요 알고리즘 개념 펜윅 트리, 세그먼트 트리 등 펜윅 트리, 세그먼트 트리 등 구간 쿼리 알고리즘(자료구조)를 알고 있어야 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 펜윅 트리, 세그먼트 트리 등으로 풀 수 있는 기본형태의 문제이다. 펜윅 트리로 풀려면 작성해둔 펜윅 트리 글에서 '기본 : 펜윅 트리' 부분을 읽어보면 이 문제를 풀 수 있다. 코드(C++ 펜윅 트리) : github.. 2022. 8. 12.
[자바] 백준 20207 - 달력 (java) 문제 : boj20207 필요 알고리즘 개념 그리디 매번 통하는 일정한 규칙을 정해서, 해당 규칙을 따르면 원하는 답을 구할 수 있는걸 말한다. 보통 엄밀히 증명되기 보다는 '이렇게 하면 될 것 같은데?' 라고 해서 시도해보고 맞는 경우가 많다. 딱히 방법이 정해진 알고리즘이 아니고, 개념적인 거니 알아야 풀 수 있고 그런건 아니다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 이 문제는 문제에서 제시된대로 시뮬레이션 문제.. 2022. 8. 12.