λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ”₯ PS(Problem Solving) πŸ”₯/BOJ

[BOJ] #6359 λ§Œμ·¨ν•œ 상범

by dar0m! 2019. 9. 19.
μ‹œκ°„ μ œν•œ λ©”λͺ¨λ¦¬ μ œν•œ μ •λ‹΅ λΉ„μœ¨
 1 초  128 MB 69.799 %

 

 

6359번: λ§Œμ·¨ν•œ 상범

문제 μ„œκ°•λŒ€ν•™κ΅ κ³€μžκ°€ κΈ°μˆ™μ‚¬μ˜ μ§€ν•˜μ—λŠ” n개의 방이 일렬둜 λŠ˜μ–΄μ„  감μ˜₯이 μžˆλ‹€. 각 λ°©μ—λŠ” λ²Œμ μ„ 많이 받은 학생이 κ΅¬κΈˆλ˜μ–΄μžˆλ‹€. 그러던 μ–΄λŠ λ‚ , 감μ˜₯ κ°„μˆ˜μΈ μƒλ²”μ΄λŠ” μ§€λ£¨ν•œ λ‚˜λ¨Έμ§€ μ •μ‹ λ‚˜κ°„ κ²Œμž„μ„ ν•˜κΈ°λ‘œ κ²°μ •ν–ˆλ‹€. κ²Œμž„μ˜ 첫 번째 λΌμš΄λ“œμ—μ„œ μƒλ²”μ΄λŠ” μœ„μŠ€ν‚€λ₯Ό ν•œ μž” 듀이킀고, 달렀가며 감μ˜₯을 ν•œ κ°œμ”© λͺ¨λ‘ μ—°λ‹€. κ·Έ λ‹€μŒ λΌμš΄λ“œμ—μ„œλŠ” 2, 4, 6, ... 번 방을 λ‹€μ‹œ 잠그고, μ„Έ 번째 λΌμš΄λ“œμ—μ„œλŠ” 3, 6, 9, ... 번 방이 μ—΄λ €μžˆμœΌλ©΄ 잠그고

www.acmicpc.net

문제

n개의 방이 일렬둜 λŠ˜μ–΄μ„  감μ˜₯이 μžˆλ‹€. 각 λ°©μ—λŠ” λ²Œμ μ„ 많이 받은 학생이 κ΅¬κΈˆλ˜μ–΄μžˆλ‹€.

첫 번째 λΌμš΄λ“œμ—μ„œ μƒλ²”μ΄λŠ” λͺ¨λ“  감μ˜₯을 ν•œ κ°œμ”© λͺ¨λ‘ μ—°λ‹€. κ·Έ λ‹€μŒ λΌμš΄λ“œμ—μ„œλŠ” 2, 4, 6, ... 번 방을 λ‹€μ‹œ 잠곑, μ„Έ 번째 λΌμš΄λ“œμ—μ„œλŠ” 3, 6, 9, ... 번 방이 μ—΄λ €μžˆμœΌλ©΄ 잠그고, μž κ²¨μžˆλ‹€λ©΄ μ—°λ‹€. k번째 λΌμš΄λ“œμ—μ„œλŠ” λ²ˆν˜Έκ°€ k의 배수인 방이 μ—΄λ € 있으면 잠그고, 잠겨 μžˆλ‹€λ©΄ μ—°λ‹€. μ΄λ ‡κ²Œ n번째 λΌμš΄λ“œκΉŒμ§€ μ§„ν–‰ν•œ 이후, μƒλ²”μ΄λŠ” μœ„μŠ€ν‚€μ˜ λ§ˆμ§€λ§‰ 병을 λ§ˆμ‹œκ³  μ“°λŸ¬μ Έ μž λ“ λ‹€.

κ΅¬κΈˆλ˜μ–΄μžˆλŠ” λͺ‡ λͺ…(μ–΄μ©Œλ©΄ 0λͺ…)의 학생듀은 μžμ‹ μ˜ 방을 μž κ·Έμ§€ μ•Šμ€ 채 상범이가 μ“°λŸ¬μ Έλ²„λ Έλ‹¨ 것을 κΉ¨λ‹«κ³  μ¦‰μ‹œ λ„λ§μΉœλ‹€.

방의 κ°œμˆ˜κ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, λͺ‡ λͺ…μ˜ 학생듀이 도주할 수 μžˆλŠ”μ§€ μ•Œμ•„λ³΄μž.

μž…λ ₯

μž…λ ₯의 첫 번째 μ€„μ—λŠ” ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€μ˜ 개수 Tκ°€ 주어진닀. 각 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λŠ” ν•œ 쀄에 ν•œ κ°œμ”© 방의 개수 n(5 ≤ n ≤ 100)이 주어진닀.

 

λ©”λͺ¨λ¦¬ μ‹œκ°„
1999 KB 0 ms
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int t, n, ans;
int prison[105];
int main() {
    scanf("%d"&t);
    while (t--) {
        scanf("%d"&n);
        for (int i = 2; i <= n; i++) {
            for (int j = i; j <= n; j += i) {
                prison[j] = prison[j] ? 0 : 1;
            }
        }
        for (int i = 1; i <= n; i++) {
            if (!prison[i]) ans++;
        }
        printf("%d\n", ans);
        ans = 0;
        memset(prison, 0sizeof(prison));
    }
    
    return 0;
}
cs

 

λ μš”μ˜€μ˜Ή
μ’€ 만 μƒκ°ν•˜λ©΄ μ΄λ ‡κ²Œ λ‚˜μ˜¨λ‹΅λ‹ˆλ‹€ ^^.. 루트 값이넀..... 이 뢀뢄은 λ‹€μŒ μ£Ό μŠ€ν„°λ”” ν•  λ•Œ μ˜λ…Όν•˜κΈ°..

1
2
3
4
5
6
7
8
9
10
#include<stdio.h>
int main() {
    int i, t, n; scanf("%d"&t);
    while (t--) {
        scanf("%d"&n);
        for (i = 1; i*<= n; i++);
        printf("%d\n", i-1);
    }
    return 0;
}
cs

'πŸ”₯ PS(Problem Solving) πŸ”₯ > BOJ' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[BOJ] #3190 λ±€  (0) 2019.09.29
[BOJ] #16929 Two Dots  (0) 2019.09.29
[BOJ] #14501 퇴사  (0) 2019.09.19
[BOJ] #2309 일곱 λ‚œμŸμ΄  (0) 2019.09.19
[BOJ] #14888 μ—°μ‚°μž λΌμ›Œλ„£κΈ°  (0) 2019.09.04

λŒ“κΈ€