728x90
1단계 : 15596번 / 정수 N개의 합
총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하시오.
- Java: long sum(int[] a); (클래스 이름: Test)
- a: 합을 구해야 하는 정수 n개가 저장되어 있는 배열 (0 ≤ a[i] ≤ 1,000,000, 1 ≤ n ≤ 3,000,000)
- 리턴값: a에 포함되어 있는 정수 n개의 합
public class Test {
long sum(int[] a){
long sum = 0;
for (int i=0; i<a.length; i++){
sum += a[i];
}
return sum;
}
}
2단계 : 4673번 / 셀프 넘버
public class Main{
public static void main(String args[]){
boolean[] check = new boolean[10001];
for(int i=1; i<10001; i++){
int a = d(i);
if (a < 10001){
check[a] = true;
}
}
for(int i=1; i<10001; i++){
if (!check[i]){
System.out.println(i);
}
}
}
public static int d(int n){
int sum = n;
while (n != 0){
sum += (n%10);
n = n/10;
}
return sum;
}
}
** 1~10000까지의 수를 생성자로 하여 다음 숫자를 도출하는 함수 => d()
d()를 사용하여 1~10000까지 생성자를 가지는 숫자들을 boolean 배열을 통해 표시한다.
"표시되지 않은 숫자 = 셀프 넘버" 해당 숫자들을 출력한다.
3단계 : 1065번 / 한수
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.
import java.util.Scanner;
public class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
boolean[] check = new boolean[N+1]; // 1~N까지 check 공간
int count = 0;
for (int i=1; i<N+1; i++){
check[h(i)] = true;
}
for(int i=1; i<N+1; i++){
if (check[i] == true){
count ++;
}
}
System.out.println(count);
}
public static int h(int n){
// 세자리 수 인 경우
if (n > 99){
int k = n;
int a = k%10; // 일의 자리수
k = k/10;
int b = k%10; // 십의 자리수
int c = k/10; // 백의 자리수
if ((c-b)==(b-a)){
return n;
} else{return 0;}
}
else{ return n;} // 한 자리, 두 자리인 경우
}
}
n이 1~99까지인 경우는 모두 한수 이다.
왜냐하면 1~9인 경우는 길이가 1인 수열이므로 9개 모두 한수이고,
10~99는 길이가 2인 수열인데, 예를 들어 50의 경우 첫항이 5, 마지막항이 0,이고 공차가 -5인 등차수열이라고 할수있기 때문이다. 자세한 설명참고는 아래 링크를 통해 확인할 수 있다.
https://www.acmicpc.net/board/view/25689
728x90
'백준 > 단계별로 풀어보기' 카테고리의 다른 글
백준 - 단계별로 풀어보기 - JAVA (7단계 : 기본 수학 1 / 8문제) (2022.12.26 월) (0) | 2022.12.26 |
---|---|
백준 - 단계별로 풀어보기 - JAVA (6단계 : 문자열 / 10문제) (2022.12.25 일) (0) | 2022.12.25 |
백준 - 단계별로 풀어보기 - JAVA (4단계 : 1차원 배열 / 9문제) (2022.12.24 토) (2) | 2022.12.24 |
백준 - 단계별로 풀어보기 - JAVA (3단계 : 반복문 / 12문제) (2022.12.23 금) (0) | 2022.12.23 |
백준 - 단계별로 풀어보기 - JAVA (2단계 : 조건문 7문제) (2022-12-22 목) (0) | 2022.12.22 |