알고리즘/백준(30)
-
2750문제 수 정렬하기(정렬) Java
https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 입력예제 5 5 2 3 4 1 예제출력 1 2 3 4..
2021.09.17 -
2798 블랙잭(완전탐색,브루트포스) Java(DFS)
https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net DFS로 문제풀이를 했는데 다른사람 블로그에서 값을 static으로 관리하는것과 sum의 값을 배열형식으로 관리하면 편하다는걸 알았다. 그리고 방문여부 체크를 하는 visit boolean값의경우 대부분은 필수인듯하다... 참고한 풀이주소 https://hidelookit.tistory.com/77 [백준 2798] 블랙잭 (자바) 백준 2798번 블랙잭 (자바) ..
2021.09.17 -
7568문제 덩치(완전탐색,브루트포스)+DFS로 변경해본 풀이추가
https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 풀이에 참고한 주소 https://yongku.tistory.com/entry/%EB%B0%B1%EC%A4%80-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%B0%B1%EC%A4%80-7568%EB%B2%88-%EB%8D%A9%EC%B9%98-%EC%9E%90%EB%B0%94Java ##포인트## 완전탐색문제인데 어떻게 완전탐색을 할것인가 X,Y값으로 주어..
2021.09.17 -
2231문제 분해합(완전탐색,브루트포스) Java
https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 매우 비효율적으로 완전탐색을 진행함…;; 결국 분해합이 나오는 공식의 경우 아래가 포인트 N = M+M첫자리+M두번째자리+M세번째자리 가 바로 생성자. 작은수를 구하는것이기 때문에 N번까지만 반복하면된다. public class boj_2231 { public static void main(String[] args) { int result = 0; //자연수 N이 주어..
2021.09.17 -
10870문제 피보나치(재귀) Java
피보나치또한 팩토리얼과 비슷한 양상을 보인다.. 문제에 대한 자세한 설명은 인터넷에 검색하면 너무많이 나오다보니 따로 추가하지 않았다. 아래처럼 작은단위에서 어떤형식으로 문제가 풀리는지를 체크하는게 중요하다고 하는데 그 포인트를 잡는게 참 힘든것같다;; // Fibonacci(5)= Fibonacci(4)+ Fibonacci(3) public class Fibonacci { public static void main(String[] args) { int result = 0; result = Fibonacci(7); System.out.println(result); } // Fibonacci(5)= Fibonacci(4)+ Fibonacci(3) private static int Fibonacci(int ..
2021.09.17 -
10872문제 팩토리얼(재귀) Java
처음에는 이해가 잘 안된다... 재귀함수의 포인트는 항상 종료조건이 중요한것 같다. ## 팩토리얼 경우 n*(n-1)팩토리얼! 이라는 공식으로 재귀적으로 호출한다. 예를들어 3이면 3! = 3*(3-1)! -> 3*2!-> 3*2*(2-1)!-> 3*2!*1! 의 형태가 반복수행됨. public class factorial { public static void main(String[] args) { int result =0; result = factorial(10); //결과 System.out.println(result); } private static int factorial(int n) { //재귀함수 종료조건1(입력받은 값이 0일때) if(n
2021.09.17