문제 링크
주의사항
- JAVA를 사용하여 프로그램을 사용하였습니다.
- 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.
public class Main{
public static void main(String[] args){
}
}
문제 설명
접근 방법
- BufferedReader를 사용하여 입력값을 저장합니다.
- 입력값을 int형으로 바꾸어 한수를 구하여 결과 출력하는 함수 cal을 호출하였습니다.
- 100이하의 수들은 모두 등차수열을 이루므로 그대로 출력하도록 하였습니다.
- 100이상일 때에 일의 자리(units), 십의 자리(tens), 백의 자리(hundreds)의 차이가 균등한 개수를 구하였습니다.
- 개수를 bw에 저장하였습니다.
- BufferedWriter를 사용하여 저장된 결과를 한 번에 출력하였습니다.
결과 코드
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//입력 값을 받는 BufferedReader
int num = Integer.parseInt(br.readLine()); //입력값 받기
cal(num); //함수 호출
br.close();
}
public static void cal(int n) throws IOException{ //한수 출력하는 함수
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
//입력 값을 출력하는 BufferedWriter
if(n<100){
bw.write(n + "\n"); //입력 값이 100이하일 때
}else{
int stack=99;
for(int i=100;i<=n;i++){ //한 수 구하는 반복문
if(i<1000) {
int units = i%10;
int tens = (i%100)/10;
int hundreds = (i%1000)/100;
if((tens-units)==(hundreds-tens)){
stack++;
}
}
}
bw.write(stack + "\n"); //한수 개수 bw에 저장
}
bw.flush(); //결과 출력
bw.close();
}
}
'백준' 카테고리의 다른 글
[백준] 단계별로 풀어보기(단계:7,문자열,JAVA)11720번, 숫자의 합 (0) | 2021.12.18 |
---|---|
[백준] 단계별로 풀어보기(단계:7,문자열,JAVA)11654번, 아스키 코드 (0) | 2021.12.18 |
[백준] 단계별로 풀어보기(단계:6,함수,JAVA)4673번, 셀프 넘버 (0) | 2021.12.17 |
[백준] 단계별로 풀어보기(단계:6,함수,JAVA)15596번, 정수 N개의 합 (0) | 2021.12.16 |
[백준] 단계별로 풀어보기(단계:5,1차원 배열,JAVA)4344번, 평균은 넘겠지 (0) | 2021.12.16 |
댓글