https://www.acmicpc.net/problem/6359
6359번: 만취한 상범
한 줄에 한 개씩 각 테스트 케이스의 답, 즉 몇 명이 탈출할 수 있는지를 출력한다.
www.acmicpc.net
방의 개수가 최대 100로 제한되어있었기 때문에 시간복잡도에 대한 고민은 하지않아도 되는 문제였던 것 같다. 처음에는 방의 열림여부를 int로 할까하다가 boolean형으로 설정하면 반대값 설정 시 더 편리해서 이걸 사용해서 해결했다.
문제 및 입출력
코드
import java.util.Arrays;
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
int t = sc.nextInt();
for(int i=0; i<t; i++)
{
int n = sc.nextInt();
int people = 0;
// 각 방에 대한 설정
boolean[] room = new boolean[n+1];
Arrays.fill(room, false);
// 1~n라운드까지 방의 인덱스를 기준으로 나눠질 때 현재값과 반대로 설정
for(int round=1; round<=n; round++)
{
for(int j=0; j<room.length; j++)
{
if(j%round==0)
{
room[j] = !room[j];
}
}
}
// 마지막 라운드 종료 후 열린 방의 개수를 결과값으로 출력
for(int j=1; j<room.length; j++)
{
if(room[j])
{
people++;
}
}
sb.append(people + "\n");
}
System.out.println(sb.toString());
sc.close();
}
}
'[ 다먹살 ] > - Coding' 카테고리의 다른 글
[백준] 11279 최대 힙 (0) | 2021.11.01 |
---|---|
[백준] 1373 2진수 8진수 (0) | 2021.10.29 |
[백준] 2446 별 찍기-9 (0) | 2021.10.29 |
[백준] 1003 피보나치 함수 (0) | 2021.10.29 |
[백준] 2669 직사각형 네개의 합집합의 면적 구하기 (0) | 2021.10.29 |
댓글