문제 내용은 입력으로 숫자를 받아, 1부터 시작해서 입력 값까지 3,6,9가 몇 개 들어있는지를 반환해주면 되는데 3이면 1개고 136이면 2번이 되겠다.
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 target = Integer.parseInt(br.readLine());
int clap = 0;
for (int i = 3; i <= target; i++) {
String s = String.valueOf(i);
for (int j = 0; j < s.length(); j++) {
if (s.charAt(j) == '3' || s.charAt(j) == '6' || s.charAt(j) == '9') {
clap += 1;
}
}
}
System.out.println(clap);
}
}
문제를 풀어보자면 입력값을 받은 뒤 3부터 for 문을 돌리면서(1,2는 어차피 박수 안치니) 값을 개별로 쪼개준 뒤 다시 값이 길이만큼 for 문을 돌려주면서 3,6,9가 들어있는지 확인하고 있으면 박수치는 식으로 하면 시간 안에 박수친 횟수를 출력해줄 수 있다.
Leave a Reply