Algorithm/BOJ(Baekjoon Online Judge)
[백준 - 6359번] 만취한 상범 - Java //Wello Horld//
koucop
2019. 8. 12. 15:32
이번에는 BOJ의 6359번 문제 "만취한 상범"을 풀어보도록 하자
입력으로 테스트 케이스 T가 주어지고, 그다음에 한 줄씩 방의개수 n (5 <= n <= 100) 이 주어진다. 그리고 k 라운드에 k 의 배수가 되는 감옥의 방문을 열려 있으면 닫고, 닫혀있으면 열려주는 것을 n라운드가 될때까지, 반복해주다가 마지막에 열려있는 방문의 개수를 출력하면 되는 문제이다.
방의개수의 상한이 100으로 작기 때문에, 그냥 문제에 나와있는 그대로 풀어도 된다.
성공한 코드는 아래와 같다.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(br.readLine());
for (int i = 0; i < T; i++) {
int n = Integer.parseInt(br.readLine());
boolean[] room = new boolean[n + 1];
for (int j = 1; j <= n; j++) {
for (int k = 1; k * j <= n; k++) {
if (room[k * j])
room[k * j] = false;
else
room[k * j] = true;
}
}
int ans = 0;
for (int j = 1; j <= n; j++) {
if(room[j]) ans++;
}
bw.write(ans + "\n");
}
bw.flush();
br.close();
bw.close();
}
}
문제 : https://www.acmicpc.net/problem/6359
6359번: 만취한 상범
문제 서강대학교 곤자가 기숙사의 지하에는 n개의 방이 일렬로 늘어선 감옥이 있다. 각 방에는 벌점을 많이 받은 학생이 구금되어있다. 그러던 어느 날, 감옥 간수인 상범이는 지루한 나머지 정신나간 게임을 하기로 결정했다. 게임의 첫 번째 라운드에서 상범이는 위스키를 한 잔 들이키고, 달려가며 감옥을 한 개씩 모두 연다. 그 다음 라운드에서는 2, 4, 6, ... 번 방을 다시 잠그고, 세 번째 라운드에서는 3, 6, 9, ... 번 방이 열려있으면 잠그고
www.acmicpc.net