와와

백준 1065 / 자바 본문

개발/자바

백준 1065 / 자바

정으주 2021. 1. 16. 00:39

www.acmicpc.net/problem/1065

 

1065번: 한수

어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나

www.acmicpc.net

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

public class Main {
	
	static int Check(int n) { // 한수 세기
		
		int count=99;
		
		if(n<100) { //두자릿수면 바로 리턴 ( 전부 한수 )
			return n;
		}
		
		else{
			if(n==1000) { //1000은 한수가 아니므로 999로 바꿔줌
				n=999;
			}
			
			int nfirst = n/100; 
			
			for(int i=1; i<=nfirst; i++) {
				for(int j=-4; j<=4; j++) {
					
					int n1 = i; //백의자릿수
					int n2 = i+j; //십의자릿수
					int n3 = i+2*j; //일의자릿수
					
					if( n1>=0 && n1<10 && n2>=0 && n2<10 && n3>=0 && n3<10 ) {
						if( n1*100 + n2*10 + n3 > n ) {
							return count;
						}
						count++;
					}	
				}
			}
		}
		return count;
	}
   
	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int N = Integer.parseInt(br.readLine());
		
		bw.append(Integer.toString(Check(N)));
		bw.flush();
	}
}

'개발 > 자바' 카테고리의 다른 글

백준 11720 / 자바  (0) 2021.01.16
백준 11654 / 자바  (0) 2021.01.16
백준 4678 / 자바  (0) 2021.01.15
백준 15596 / 자바  (0) 2021.01.15
백준 4344 / 자바  (1) 2021.01.14