티스토리 뷰
Q.1065 한수
어떤 양의 정수 X의 자리수가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.
입력 :
첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다.
출력 :
첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.
<소스코드>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 |
import java.util.*;
public class Prac {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int answer;
int[] jari = new int[3]; //각 자리수 저장할 배열
int N = sc.nextInt();
if(N >= 100) {//N이 세자리수 이상이라면
answer = 99; //100 이전까지는 전부 한수이므로 answer = 99
for(int i = 100; i <= N; i++) { //100부터 N까지
jari[0] = i/100; jari[1] = (i/10)%10; jari[2] = i%10; //각 자리수 배열에 저장
int d = jari[1] - jari[0]; //두번째 자리수에서 첫번째 자리수를 빼 등차를 구한다.
if(jari[1] + d == jari[2]) //두번째 자리수 + d의 결과와 세번째 자리수가 같다면
answer++; //answer++
}
}
else// 세 자리수 이하는 전부 한수이다.
answer = N;
System.out.println(answer);
}
} |
cs |
<실행 결과>
해법 :
*두 자리 숫자의 경우 등차수열인지 확인 할 수 없기 때문에 전부 한수로 인정한다. (1 ~ 99 = 한수)
*세 자리수 이상부터는 각 자리수가 등차수열을 이루는지 확인하는 과정을 거친다.
(1) 숫자 100 이전은 전부 한수이므로 변수 answer에 99를 할당한다.
(2) 각 자리수를 자릿수 배열(jari[])에 저장한다.
(3) '두번째 자리수(jari[1])'에서 '첫번째 자리수(jari[0])'을 빼 등차(int d)를 구한다.
(4) '두번째 자리수(jari[1]) + 등차(int d)'와 '세번째 자리수'의 값이 같다면 answer의 값을 +1 한다.
(5) (2)~(4)과정을 100부터 N까지 반복한다.
문제 사이트 및 참고 사이트 : https://www.acmicpc.net/step/5
※
본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.
※
'자료구조 및 알고리즘 > 백준' 카테고리의 다른 글
[백준]1차원 배열 사용하기 (0) | 2017.10.08 |
---|---|
[백준]1152번, 단어의 개수 (0) | 2017.10.07 |
[백준]4673번 셀프 넘버 (0) | 2017.10.02 |
[백준]if문 사용해보기 (0) | 2017.10.01 |
[백준]for문 사용해보기 (0) | 2017.09.29 |
- Total
- Today
- Yesterday
- 백준 1874
- css 그리드
- 자바 에센셜 실습문제
- 파이썬 클래스
- 백준 10451
- 파이썬 while
- 파이썬 if문
- 파이썬 연산자
- css
- 자바스크립트 그래프
- 백준 11501
- 파이썬 리스트
- 파이썬 선택문
- 버츄어박스
- 파이썬
- 파이썬 진수 변환
- 파이썬 for
- 파이썬 함수
- 자료구조
- 파이썬 객체
- 명품 c++ 실습
- 파이썬 예제
- 자바스크립트 자료구조
- 자바
- 백준
- 파이썬 터틀
- 파이썬 단계적 개선
- 파이썬 문자열
- 웹
- css 박스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |