본문 바로가기

전체 글133

[코딩테스트/백준 알고리즘] 2309번 : 일곱 난쟁이 (자바, Java 풀이) 문제 https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 문제 설명 문제 풀이 9명 중에 진짜 난쟁이 7명을 고르는 것보다 9명 중에 가짜 난쟁이 2명을 골라내는 것이 더 빠르게 문제를 해겱할 수 있는 방법이다. 때문에 9명의 키를 모두 합한 뒤 100을 빼서 그 차이를 만족하는 범인 두명을 찾는 방법을 사용했다. 코드 import java.util.*; class Main { public static void main(String[] args) { Sca.. 2022. 9. 2.
[코딩테스트/백준 알고리즘] 16194번 : 카드 구매하기 2 (자바, Java 풀이) 문제 https://www.acmicpc.net/problem/16194 16194번: 카드 구매하기 2 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 문제 설명 문제 풀이 2022.08.31 - [🧑‍💻코딩 테스트/백준 (BOJ)] - [코딩테스트/백준 알고리즘] 11052번 : 카드 구매하기 (자바, Java 풀이) 이 코드에서 삼항연산자 부등호 방향만 바꿔서 해결했다. 코드 import java.util.*; class Main { public static void main(String[] args) { Scanner sc = new Sc.. 2022. 8. 31.
[코딩테스트/백준 알고리즘] 11052번 : 카드 구매하기 (자바, Java 풀이) 문제 https://www.acmicpc.net/problem/11052 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 문제 설명 문제 풀이 카드 1장을 가장 비싸게 사는 방법 - 1장 짜리 카드팩을 구매하는 비용 카드 2장을 가장 비싸게 사는 방법 - 2장 짜리 카드팩을 구매하는 비용 - 1장 짜리 카드팩을 구매하는 비용과 카드 1장을 가장 비싸게 사는 비용의 합 중 비싼 것을 선택 카드 3장을 가장 비싸게 사는 방법 - 3장 짜리 카드팩 구매하는 비용 - 1장 짜리 카드팩을 구매하는 비용과 카드 2장을 가장 비싸.. 2022. 8. 31.
[코딩테스트/백준 알고리즘] 1676번 : 팩토리얼 0의 개수 (자바, Java 풀이) 문제 https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 설명 문제 풀이 n!의 뒤에 0이 몇 개 나오는지 알아보기 위해선 그 수를 소인수분해 했을 때 2와 5의 쌍이 몇 개 나오는지 알아보면 된다. 하지만 2는 엄청나게 많이 나올 것이 분명하기 때문에 우리는 5가 몇 개 나오는 지만 신경쓰면 된다. 수 소인수 분해 n! 4! 4 X 3 X 2 X 1 = 2³ X 3 24 5! 5 X 4 X 3 X 2 X 1 = 2³ X 3¹ X 5¹ 120 10! 10 X 9 X 8 X 7 X 6 X 5 X 4 X 3 X 2 X 1 = 2⁸ .. 2022. 8. 31.
[코딩테스트/백준 알고리즘] 9095번 : 1, 2, 3 더하기 (자바, Java 풀이) 문제 https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 문제 설명 문제 풀이 정수 4를 1, 2, 3의 합으로 나타내는 방법을 보자 1 + 1 + 1 + 1 1 + 1 + 2 1 + 2 + 1 1 + 3 2 + 1 + 1 2 + 2 3 + 1 이걸 좀 있어보이게 나타내면 아래 표와 같다. 어떻게 작은 문제로 나눠야 하는지 보일 것이다. n 식 나타내는 방법 4 1 + (n - 1) 1 + (1 + 1 + 1) 1 + (1 + 2) 1 + (2 + 1) 1 + 3 2 + (n - 2) 2 + (1 + 1) 2 + 2 3 + (n - 3) 3 + .. 2022. 8. 30.
[코딩테스트/백준 알고리즘] 11727번 : 2 X n 타일링 2 (자바, Java 풀이) 문제 https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 문제 설명 문제 풀이 문제에 대한 전반적인 설명은 아래 글을 참고하세요. 2022.08.29 - [🧑‍💻코딩 테스트/백준 (BOJ)] - [코딩테스트/백준 알고리즘] 11726번 : 2×n 타일링 (자바, Java 풀이) 이 문제에서는 2 X 2 타일이 생겼기 때문에 맨 왼쪽에 2칸짜리 타일을 채우는 경우가 2개가 나온다. 따라서 memo[n] = memo[n - 1] + (2 X memo[n - 2])로 답을 구할 수 .. 2022. 8. 30.