[Java] 백준 4673번: 셀프 넘버
·
코딩테스트
문제 링크https://www.acmicpc.net/problem/4673 분류브루트포스 알고리즘, 구현, 수학문제 설명셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다.양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다.예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런식으로 다음과 같은 수열을 만들 수 있다.33, 39, 51, 57..
[Java] 백준 1789번: 수들의 합
·
코딩테스트
문제 링크https://www.acmicpc.net/problem/1789분류그리디 알고리즘, 수학문제 설명서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까?입력첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.출력첫째 줄에 자연수 N의 최댓값을 출력한다. 성능 요약메모리: 14304 KB, 시간: 108 ms접근 방법N이 최대가 되려면 1부터 차례대로 더해야 한다.그래서 1부터 차근차근 더해가면서, 합한 값이 S가 되거나 초과하게 되면 멈추도록 했다.만약 합한 값(sum)이 S를 초과하게 되어도 'sum - S'의 값을 S에서 빼기만 하면 조건은 만족하기 때문이다. 예를 들어, S가 12로 주어졌다면1+2+3+4+5 = 15이므로 5를 ..