전체 글 277

[JAVA] 백준 10815 숫자카드_집합과맵

https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 접근 : - 내가 보유할 카드수 N 을 입력 받음 - N 장의 카드에 해당하는 숫자들을 받음 - 비교할 대상 의 숫자수 M 을 입력 받음 - M 개의 해당하는 숫자들을 받음 - 수 로만 이루어져 있으므로 이진 탐색 방법을 사용 - 이진 탐색을 사용하기 위해 N을 오름차순으로 정렬 - 입력 받은 M 을 한 개씩 꺼내어 N장의 카드들에 있는 수 인지 판별 코드 구현: i..

JAVA/Coding Test 2023.03.01

[JAVA] 백준 10870 피보나치 수 5_ 재귀함수

https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 접근 : - 피보나치 수를 재귀 함수로 구현 - n = 0 일 때, 결과 값은 0 - n = 1 일 때, 결과 값은 1 - n ≥ 2 일 때, Fn = Fn-1 + Fn-2 코드 구현: import java.io.*; public class Main { public static int fibonacci(int n) { // 0 이하가 들어오면 0 반환(예외처..

JAVA/Coding Test 2023.03.01

[JAVA] 백준 10872 팩토리얼_재귀함수

https://www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 접근 : - N 을 받았을 때, 1이하 일 때에는 1을 결과로 출력 - 1 보다 큰 N 일 때, N을 곱하고 N이 1이 될 때까지 1 씩 감소 시키며 같은 과정을 반복 - 해당 과정을 재귀함수로 구현 main에서 factorial 메서드 호출시 다음과 같은 시퀀스가 일어남. (n = 5 일때, 예시) 코드 구현: public class Main { public static int factorial(int n, int result) { if (n

JAVA/Coding Test 2023.02.28

[JAVA] 백준 2798 블랙잭_브루트포스

https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 접근 : - 입력 받은 N 개의 수 중 3개를 골라 합하여 target number(M)를 넘지 않는 가장 근접한 수를 출력 - N이 3으로 고정되어 있으므로 재귀 함수 대신 반복문으로 구현 - N개중 1개를 뽑았을 때, M과 같거나 큰 경우 제외(다음 수 로 넘어감) - N개중 2개를 뽑았을 때, M과 같거나 큰 경우 제외(다음 수 로 넘어감) - N개중 3개를 ..

JAVA/Coding Test 2023.02.28

[JAVA] 백준 2231 분해합_브루트포스

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 보다 작은 수 중 특정수(i)와 특정수의 각자리수를 더한 값이 n 과 같은 수 찾기 - i 가 여러개 일 경우 작은 수 출력( 작은 순서부터 큰 순서대로 계산 후 최초 i 발견 시 결과값 출력) - ex> n = 256 인 경우 i = 245 (245+2+4+5 = 256) - 끝까지 계산 후 조건을 만족하는 i 가 없는 경우 0 출력 - i는..

JAVA/Coding Test 2023.02.28