1065. 한수
https://www.acmicpc.net/problem/1065
📌문제
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.
- 예제1
📝입력
첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다.
110
💻출력
첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.
99
📌풀이
124ms, 14256kb
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
// 1~99 는 한수
int answer = 99;
if(n < 100){
answer = n;
}
else{
int temp = 110;
while(n >= temp)
{
int h = temp/100;
int t = (temp%100)/10;
int u = (temp%10)/1;
if(u - t == t - h) answer++;
temp++;
}
}
System.out.print(answer);
}
}
- 99이하는 전부 한수이므로 if, else if문으로 처리했음
- 100이상일 때는 한수인지 체크를 해봐야함. 100의 자리 10의 자리 1의 자리를 구한 뒤, 등차수열인지 확인해서 answer 값을 올려줌
- 스터디원들은 대부분 temp 값을 스트링으로 받아서 한자리씩 잘라줬더라. 나는 무식하게 그냥 숫자로 나눠버렸다.
'Algorithm > PTUStudy' 카테고리의 다른 글
5주차. 연결 리스트(두 정렬 리스트의 병합) (0) | 2023.02.06 |
---|---|
5주차. 연결 리스트(팰린드롬 연결 리스트) (0) | 2023.02.06 |
4주차. 개수 세기 (0) | 2023.01.30 |
4주차. 영수증 (0) | 2023.01.30 |
4주차. 베르트랑 공준 (0) | 2023.01.30 |