분류 전체보기(255)
-
[백준 10872번] 팩토리얼(재귀)
https://www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다. 출력 첫째 줄에 N!을 출력한다. 예제 입력 1 복사 10 예제 출력 1 복사 3628800 예제 입력 2 복사 0 예제 출력 2 복사 1 문제 분석 팩토리얼을 재귀로 구현하는 문제입니다. if ~ else를 활용해서 구현해보겠습니다. 실패 코드 import java.util.*; public class Main { public int Factoria..
2022.04.26 -
[백준 1789번] 수들의 합
https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 문제 서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까? 입력 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. 출력 첫째 줄에 자연수 N의 최댓값을 출력한다. 예제 입력 1 복사 200 예제 출력 1 복사 19 문제 분석 1. 최대한 작은 수들로만 합을 구하면 이게 N의 최댓값이 됩니다. 2. 주어진 S의 범위가 int 범위를 벗어나므로 long으로 선언해야 합니다. int 대략적인 범위 : -21억 ~ 21억 성공 코드 import java.ut..
2022.04.26 -
배열 오름차순, 내림차순 정렬하기
알고리즘 문제를 풀 때, 입력을 받은 후 정렬하는 경우가 많습니다. 저의 경우 오름차순은 여러 번 사용했던 터라 메서드를 알고 있었지만, 내림차순을 할 때는 잠시 망설였던 경험이 있습니다. 독자분들은 바로바로 사용하실 수 있게 이번 기회에 암기하고 가시면 좋을 것 같습니다. 공부 후 관련 알고리즘 문제까지 푸시는 것을 추천합니다. [백준 2217번] 로프 [백준 2217번] 로프 https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는.. lealea.tistory.com 배열의 오름차순 정렬 Arrays.sor..
2022.04.25 -
💡 이진트리 순회(BFS: Breadth-First Search, 넓이우선탐색, 레벨탐색)
아래 그림과 같은 이진트리를 레벨탐색 연습하세요. 레벨 탐색 순회 출력 : 1 2 3 4 5 6 7 문제 분석 BFS는 최단거리탐색에 쓰입니다. 큐를 사용합니다. 루트 - 레벨 0 루트에서 한 번만에 갈 수 있는 노드 - 레벨 1 루트에서 두 번만에 갈 수 있는 노드 - 레벨 2 ... 레벨 0 다 탐색하고 레벨 1 다 탐색하고 레벨 2 다 탐색... 코드 구현 import java.util.*; class Node{ int data; Node lt, rt; public Node(int val) { data=val; lt=rt=null; } } public class Main{ Node root; public void BFS(Node root){ // Node객체 저장하는 큐 선언 Queue Q=new ..
2022.04.24 -
💡 부분집합 구하기(DFS)
자연수 N이 주어지면 1부터 N까지의 원소를 갖는 집합의 부분집합을 모두 출력하는 프로그램 을 작성하세요. ▣ 입력설명 첫 번째 줄에 자연수 N(1
2022.04.24 -
[백준 1292번] 쉽게 푸는 문제
https://www.acmicpc.net/problem/1292 1292번: 쉽게 푸는 문제 첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다. www.acmicpc.net 문제 동호는 내년에 초등학교를 입학한다. 그래서 동호 어머니는 수학 선행 학습을 위해 쉽게 푸는 문제를 동호에게 주었다. 이 문제는 다음과 같다. 1을 한 번, 2를 두 번, 3을 세 번, 이런 식으로 1 2 2 3 3 3 4 4 4 4 5 .. 이러한 수열을 만들고 어느 일정한 구간을 주면 그 구간의 합을 구하는 것이다. 하지만 동호는 현재 더 어려운 문제를 푸느라 바쁘기에 우리가 동호를 도와주자. 입력 첫째 줄에 구..
2022.04.24