문제
- 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);
}
}