[백준] 1065. 한수

bonnie·2022년 1월 4일
0

🟢 알고리즘 풀이

목록 보기
16/27
post-thumbnail

문제

https://www.acmicpc.net/problem/1065

풀이

어떤 수의 각 자리수가 등차수열을 이루는지 확인하는 문제.
hansu라는 함수를 따로 만들어 main에서 출력하는 형태로 만들어 보았다.
우선 1~99까지는 모두 등차수열을 이루기 때문에(한자리, 혹은 두자리 수이므로) 파라미터로 받은 숫자를 그대로 return해준다.
그 이상의 숫자를 확인할때는 먼저 count에 99를 저장한 후 for문으로 각 자리수를 구해 등차수열이 성립 되는지 확인한다. 각 자리수의 차가 같으면 count++을 해준다.

코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Q_1065 {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int num = Integer.parseInt(br.readLine());
		System.out.println(hansu(num));
	}

	static int hansu(int num) {
		int count = 0;
		
		if (num < 100) {
			return num;
		} else {
			count = 99;
			if (num == 1000) {
				num = 999;
			}
			for (int i = 100; i <= num; i++) {
				// 100의 자리
				int a = i / 100;
				// 10의 자리
				int b = (i / 10) % 10;
				// 1의 자리
				int c = i % 10;
				
				if ((a - b) == (b - c)) {
					count++;
				}
			}
		}
		return count;
	}
}
profile
괴발🐱개발🐶

0개의 댓글