ProblemSolving/BackJoon
[BackJoon] JAVA 단계별 풀이 : 05. 함수 (completion)
JOKUN
2022. 9. 25. 16:52
[문제 풀이 완료 목록]
☑️ 정수 N개의 합
☑️ 셀프 넘버
☑️ 한수
[함수]
정수 N개의 합
15596번: 정수 N개의 합
C++17, Java 8, Python 3, C11, PyPy3, C99, C++98, C++11, C++14, Go, C99 (Clang), C++98 (Clang), C++11 (Clang), C++14 (Clang), C11 (Clang), C++17 (Clang)
www.acmicpc.net
문제 번호 : 15596
단계 : 1
package jokun.BackJoon.step5;
public class Practice15596 {
public long sum(int[] a){
long sum = 0;
for (int i = 0; i < a.length; i++) {
sum +=a[i];
}
return sum;
}
}
셀프 넘버
4673번: 셀프 넘버
셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때,
www.acmicpc.net
문제 번호 : 4673
단계 : 2
package jokun.BackJoon.step5;
public class Practice4673 {
public static void main(String[] args) {
boolean check[] = new boolean[10000];
for (int i = 1; i <= check.length; i++) {
//10000까지의 숫자를 모두 계산해야하니까 이렇게 식을 세움
int result = i + i / 10000 + ( i / 1000) % 10 + (i / 100) % 10 + (i / 10) % 10 + i % 10;
if(result <= 10000){
check[result - 1] = true;
}
}
for (int i = 0; i < check.length; i++) {
if(!check[i]){
System.out.println(i + 1);
}
}
}
}
한수
1065번: 한수
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나
www.acmicpc.net
문제 번호 : 1065
단계 : 3
package jokun.BackJoon.step5;
import java.util.Scanner;
public class Practice1065 {
public static void main(String[] args) {
Hansu hansu = new Hansu();
Scanner scan = new Scanner(System.in);
hansu.countHan(scan.nextInt());//countHan에 N을 대입
System.out.println(hansu.count);//count출력
}
}
class Hansu{
int count;
public Hansu(){
}
public int countHan(int N){
int[] arr = new int[N];
for(int i = 0; i < N ; i++){
arr[i] = i+1;//arr 배열에 1~N 대입
int hun = arr[i]/100; //100의자리 공식
int ten = arr[i] % 100 / 10;//10의자리 공식
int one = arr[i] % 10;//1의자리 공식
if(arr[i]<100){//100보다 작은 값일 경우
count++; //모든 수가 한수
}
if(arr[i]>100) {//100보다 큰 수일 경우
if ((hun - ten) == (ten - one)) {
count++;//조건에 맞아야지만 count++
}
}
}
return count;
}
}