문제

  • A이상 B이하 수들 중 3, 6, 9 중에 하나가 들어가 있거나 그 수 자체가 3의 배수인 수의 개수

풀이

  • 936ms, 78MB
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));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int a = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());
        int cnt = 0;
 
        for(int i = a ; i <= b ; i++){
            if(i%3 == 0) {
                cnt++;
                continue;
            }
            if(!(i+"").replaceAll("[1245780]","").isEmpty()) cnt++;
        } 
 
        System.out.print(cnt);
    }
}

풀이2

  • 192ms, 18MB
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));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int a = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());
        int cnt = 0;
 
        for(int i = a ; i <= b ; i++){
            if(i%3 == 0) {
                cnt++;
                continue;
            }
            for(char c : (i+"").toCharArray()){
                if(c=='3' || c=='6' || c=='9'){
                    cnt++;
                    break;
                }
            }
        } 
 
        System.out.print(cnt);
    }
}