Java/코딩테스트 3

[JAVA] 순열과 조합 구현하기

요즘 코테 공부하면서 순열, 조합을 구현할 일이 많은데 자꾸 까먹어서 정리한다. 특히 백트래킹 문제에서 거의 필수적으로 등장하는 것 같다. 구글링 하면서 제일 직관적이고 이해가 쉽다고 느꼈던 링크를 참고해서 작성한다! 순열 - nPr (서로 다른 n개 중 r개를 선택하는 경우의 수. 순서 상관 있음.) - (1,2) 와 (2,1) 을 서로 다른 것으로 취급한다. 조합 - nCr (서로 다른 n개 중 r개를 선택하는 경우의 수. 순서 상관 없음.) - (1,2) 와 (2,1) 을 서로 같은 것으로 취급한다. 순열, 조합 모두 재귀로 구현한다. n개 중 r개를 뽑아서 output 배열에 저장할 것이다. 이때, 순열은 순서가 상관 있으므로 방문 배열(visited)를 추가로 선언해주어야 한다. 순열 1) 뽑은..

[백준] 25916번 - 싫은데요

https://www.acmicpc.net/problem/25916 25916번: 싫은데요 $6$번째 구멍부터 $8$번째 구멍까지 막으면 총 $9$의 부피를 소모하고, 최대값인 $9$를 출력한다 www.acmicpc.net 예제는 통과하는데 계속 틀렸다고 해서 며칠 동안 계속 삽질했다.. ㅠ.ㅠ 구글링 해도 원하는 알고리즘대로 푼 글이 없어서 답답했는데 같은 투포인터 유형의 다른 문제를 풀다가 해답을 찾았다! 아래 글대로 풀었더니 풀렸다.. 감사합니다😭 https://maivve.tistory.com/223 (JAVA) 백준 2003번 : 수들의 합2 --- [투포인터] https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1≤N≤10,000), M(..

[백준] 11659번 구간 합 구하기 4

https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net Solution 1. 문제에서 0번째 배열을 1번째 배열이라고 지칭하고 있다. 따라서, 0번째 배열을 비워두고 1번째 부터 값을 채워나가면 로직이 더 간편해진다. 예제를 대입하여 그림으로 이해하는 것이 빠르다. import java.io.*; import java.util.*; public class Main { public static void main(String[] a..