제1 1 회 블 루 브리지 컵 교 내 시 뮬 레이 션 자바 B 조 7 번 문제 분석
15200 단어 알고리즘
문 제 는 정수 가 오른쪽 에 인접 한 숫자 보다 크 지 않 으 면 숫자 가 증가 하 는 숫자 라 고 한다. 예 를 들 어 1135 는 숫자 가 증가 하 는 숫자 이 고 1024 는 숫자 가 증가 하 는 숫자 가 아니다.정수 n 을 정 합 니 다. 정수 1 에서 n 까지 몇 개의 숫자 가 증가 합 니까?입력 형식 입력 의 첫 줄 은 정수 n 을 포함 합 니 다.출력 형식 출력 한 줄 은 정 수 를 포함 하여 답 을 표시 합 니 다.샘플 입력 30 사례 출력 26 평가 사례 규모 와 약정 40% 에 대한 평가 사례, 1 < = n < = 1000.80% 의 평가 용례 에 대해 1 < = n < = 100000.모든 평가 용례 에 대해 1 < = n < = 1000000.분석: 함 수 를 설정 하여 한 자릿수 비 교 를 한다 면 1 을 카운터 로 되 돌려 줍 니 다.String 에서 Integer 로 전환 하 는 방법 을 주의 하 세 요.코드:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int count = 0;
Scanner input = new Scanner(System.in);
int n = input.nextInt();
for(int i = 1; i < n; i++) {
count += f(i);
}
System.out.println(count);
}
public static int f(int i) {
String xx = Integer.toString(i);
if(i < 10) {
return 1;
}else if(i >= 10 && i < 100){
if(xx.charAt(0) <= xx.charAt(1)) {
return 1;
}
}else if(i >= 100 && i < 1000) {
if(xx.charAt(0) <= xx.charAt(1) && xx.charAt(1) <= xx.charAt(2)) {
return 1;
}
}else if(i >= 1000 && i < 10000) {
if(xx.charAt(0) <= xx.charAt(1) && xx.charAt(1) <= xx.charAt(2) && xx.charAt(2) <= xx.charAt(3)) {
return 1;
}
}else if(i >= 10000 && i < 100000) {
if(xx.charAt(0) <= xx.charAt(1) && xx.charAt(1) <= xx.charAt(2) && xx.charAt(2) <= xx.charAt(3) && xx.charAt(3) <= xx.charAt(4)) {
return 1;
}
}else if(i >= 100000 && i < 1000000) {
if(xx.charAt(0) <= xx.charAt(1) && xx.charAt(1) <= xx.charAt(2) && xx.charAt(2) <= xx.charAt(3) && xx.charAt(3) <= xx.charAt(4) && xx.charAt(4) <= xx.charAt(5)) {
return 1;
}
}
return 0;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Codility Lesson3】FrogJmpA small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.