https://www.acmicpc.net/problem/6359
비슷하게 풀었는데, 실패했음.
미리 방으로 쓸 배열을 충분히 120개까지 만들어놨다는 점.
그리고 배열 초기화를 Arrays.fill(room, 0)으로 하였다는 점.
그리고 2의 배수, 3의 배수를 인덱스르 써야하는데 for문에서 k*j <=n 이런식으로 하면 된다는 점을 배웠다.
public class Boj6359_만취한상범 {
static int room[] = new int[120];
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(br.readLine());
for (int i = 0; i < t; i++) {
int n = Integer.parseInt(br.readLine());
Arrays.fill(room, 0);
for (int k = 1; k <= n; k++) {
for (int j = 1; k*j <= n; j++) {
if (room[k*j] == 0) {
room[k*j]++;
} else {
room[k*j]--;
}
}
}
int cnt = 0;
for (int j = 1; j <= n; j++) {
if (room[j] == 1) cnt++;
}
System.out.println(cnt);
}
}
}
'알고리즘 > 백준' 카테고리의 다른 글
백준 1924 2007년 (0) | 2022.03.02 |
---|---|
백준 2745 진법변환 (Java) (0) | 2022.03.01 |
백준 10987 모음의 개수 (0) | 2022.02.28 |
백준 2587 대표값2 (0) | 2022.02.28 |
백준 11720 숫자의 합 (0) | 2022.02.28 |