본문 바로가기

전체 글669

백준 2231 분해합 (JAVA 자바 풀이) 백준 2231 분해합 (JAVA 자바 풀이) 📌 문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다. 자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오. ⚔ 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 📣 출력 첫째 줄에 답을 출력한다. 생성자가 없는 경우에는 0을 출력한다. 💎 문제 분석 완전 탐색 방법으로도 .. 2022. 12. 3.
백준 25501 재귀의 귀재 (JAVA 자바 풀이) 펠린드롬 백준 25501 재귀의 귀재 (JAVA 자바 풀이) 📌 문제 정휘는 후배들이 재귀 함수를 잘 다루는 재귀의 귀재인지 알아보기 위해 재귀 함수와 관련된 문제를 출제하기로 했다. 팰린드롬이란, 앞에서부터 읽었을 때와 뒤에서부터 읽었을 때가 같은 문자열을 말한다. 팰린드롬의 예시로 AAA, ABBA, ABABA 등이 있고, 팰린드롬이 아닌 문자열의 예시로 ABCA, PALINDROME 등이 있다. 어떤 문자열이 팰린드롬인지 판별하는 문제는 재귀 함수를 이용해 쉽게 해결할 수 있다. 아래 코드의 isPalindrome 함수는 주어진 문자열이 팰린드롬이면 1, 팰린드롬이 아니면 0을 반환하는 함수다. ⚔ 입력 📣 출력 각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수.. 2022. 12. 3.
백준 10870 피보나치 수 5 (JAVA 자바 풀이) 백준 10870 피보나치 수 5 (JAVA 자바 풀이) 📌 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오. ⚔ 입력 첫째 줄에 n이 주어진다. n은 20보다 작거나 같은 자연수 또는 0이다. 📣 출력 첫째 줄에 n번째 피보나치 수를 출력한다. 💎 문제 분석 재귀에 입문하.. 2022. 12. 3.
백준 18870 좌표 압축 (JAVA 자바 풀이) 백준 18870 좌표 압축 (JAVA 자바 풀이) 📌 문제 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자. ⚔ 입력 첫째 줄에 N이 주어진다. 둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다. 📣 출력 첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력한다. 💎 문제 분석 for문을 이중으로 반복해서 사용할시 N의 범위가 100만이므로 1초 + a가 되면서 시간 제한에 걸려버린다. 이 문제는 중.. 2022. 12. 3.
백준 10814 나이순 정렬 (JAVA 자바 풀이) 백준 10814 나이순 정렬 (JAVA 자바 풀이) 📌 문제 첫째 줄에 온라인 저지 회원의 수 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄부터 N개의 줄에는 각 회원의 나이와 이름이 공백으로 구분되어 주어진다. 나이는 1보다 크거나 같으며, 200보다 작거나 같은 정수이고, 이름은 알파벳 대소문자로 이루어져 있고, 길이가 100보다 작거나 같은 문자열이다. 입력은 가입한 순서로 주어진다. ⚔ 입력 첫째 줄부터 총 N개의 줄에 걸쳐 온라인 저지 회원을 나이 순, 나이가 같으면 가입한 순으로 한 줄에 한 명씩 나이와 이름을 공백으로 구분해 출력한다. 📣 출력 N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다. 💎 문제 분석 이 경우엔 출력을 .. 2022. 12. 2.