Q6359. 만취한 상범
쉽게 풀었습니다.
아래의 코드보다는
5부터 100까지의 테스트 케이스를 미리 구한 후
답만 출력하는 방식이 더욱 나을듯 합니다.
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Q6359 { static boolean[] isOpenRoom = new boolean[101]; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine());
int testCase = Integer.parseInt(st.nextToken()); for (int t = 1; t <= testCase; t++) { st = new StringTokenizer(br.readLine()); int num = Integer.parseInt(st.nextToken()); for (int i = 1; i <= num; i++) { isOpenRoom[i] = false; } for (int i = 1; i <= num; i++) { for (int j = i; j <= num; j += i) { if (isOpenRoom[j]) { isOpenRoom[j] = false; } else { isOpenRoom[j] = true; } } }
int openNum = 0; for (int i = 1; i <= num; i++) { if (isOpenRoom[i]) { openNum++; } } System.out.println(openNum); } } } |