๐Ÿงฉ Algorithm/[BOJ] Bronze

BOJ 6359๋ฒˆ : ๋งŒ์ทจํ•œ ์ƒ๋ฒ” (Python/Bronze 2)

devCloud 2023. 4. 13. 18:15
728x90
 

6359๋ฒˆ: ๋งŒ์ทจํ•œ ์ƒ๋ฒ”

ํ•œ ์ค„์— ํ•œ ๊ฐœ์”ฉ ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๋‹ต, ์ฆ‰ ๋ช‡ ๋ช…์ด ํƒˆ์ถœํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

www.acmicpc.net

๋ฌธ์ œ

์„œ๊ฐ•๋Œ€ํ•™๊ต ๊ณค์ž๊ฐ€ ๊ธฐ์ˆ™์‚ฌ์˜ ์ง€ํ•˜์—๋Š” n๊ฐœ์˜ ๋ฐฉ์ด ์ผ๋ ฌ๋กœ ๋Š˜์–ด์„  ๊ฐ์˜ฅ์ด ์žˆ๋‹ค. ๊ฐ ๋ฐฉ์—๋Š” ๋ฒŒ์ ์„ ๋งŽ์ด ๋ฐ›์€ ํ•™์ƒ์ด ๊ตฌ๊ธˆ๋˜์–ด์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ์–ด๋А ๋‚ , ๊ฐ์˜ฅ ๊ฐ„์ˆ˜์ธ ์ƒ๋ฒ”์ด๋Š” ์ง€๋ฃจํ•œ ๋‚˜๋จธ์ง€ ์ •์‹ ๋‚˜๊ฐ„ ๊ฒŒ์ž„์„ ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค. ๊ฒŒ์ž„์˜ ์ฒซ ๋ฒˆ์งธ ๋ผ์šด๋“œ์—์„œ ์ƒ๋ฒ”์ด๋Š” ์œ„์Šคํ‚ค๋ฅผ ํ•œ ์ž” ๋“ค์ดํ‚ค๊ณ , ๋‹ฌ๋ ค๊ฐ€๋ฉฐ ๊ฐ์˜ฅ์„ ํ•œ ๊ฐœ์”ฉ ๋ชจ๋‘ ์—ฐ๋‹ค. ๊ทธ ๋‹ค์Œ ๋ผ์šด๋“œ์—์„œ๋Š” 2, 4, 6, ... ๋ฒˆ ๋ฐฉ์„ ๋‹ค์‹œ ์ž ๊ทธ๊ณ , ์„ธ ๋ฒˆ์งธ ๋ผ์šด๋“œ์—์„œ๋Š” 3, 6, 9, ... ๋ฒˆ ๋ฐฉ์ด ์—ด๋ ค์žˆ์œผ๋ฉด ์ž ๊ทธ๊ณ , ์ž ๊ฒจ์žˆ๋‹ค๋ฉด ์—ฐ๋‹ค. k๋ฒˆ์งธ ๋ผ์šด๋“œ์—์„œ๋Š” ๋ฒˆํ˜ธ๊ฐ€ k์˜ ๋ฐฐ์ˆ˜์ธ ๋ฐฉ์ด ์—ด๋ ค ์žˆ์œผ๋ฉด ์ž ๊ทธ๊ณ , ์ž ๊ฒจ ์žˆ๋‹ค๋ฉด ์—ฐ๋‹ค. ์ด๋ ‡๊ฒŒ n๋ฒˆ์งธ ๋ผ์šด๋“œ๊นŒ์ง€ ์ง„ํ–‰ํ•œ ์ดํ›„, ์ƒ๋ฒ”์ด๋Š” ์œ„์Šคํ‚ค์˜ ๋งˆ์ง€๋ง‰ ๋ณ‘์„ ๋งˆ์‹œ๊ณ  ์“ฐ๋Ÿฌ์ ธ ์ž ๋“ ๋‹ค.

๊ตฌ๊ธˆ๋˜์–ด์žˆ๋Š” ๋ช‡ ๋ช…(์–ด์ฉŒ๋ฉด 0๋ช…)์˜ ํ•™์ƒ๋“ค์€ ์ž์‹ ์˜ ๋ฐฉ์„ ์ž ๊ทธ์ง€ ์•Š์€ ์ฑ„ ์ƒ๋ฒ”์ด๊ฐ€ ์“ฐ๋Ÿฌ์ ธ๋ฒ„๋ ธ๋‹จ ๊ฒƒ์„ ๊นจ๋‹ซ๊ณ  ์ฆ‰์‹œ ๋„๋ง์นœ๋‹ค. ๋ฐฉ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ช‡ ๋ช…์˜ ํ•™์ƒ๋“ค์ด ๋„์ฃผํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด์ž.

 

์ž…๋ ฅ

์ž…๋ ฅ์˜ ์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ํ•œ ์ค„์— ํ•œ ๊ฐœ์”ฉ ๋ฐฉ์˜ ๊ฐœ์ˆ˜ n(5 ≤ n ≤ 100)์ด ์ฃผ์–ด์ง„๋‹ค.

 

์ถœ๋ ฅ

ํ•œ ์ค„์— ํ•œ ๊ฐœ์”ฉ ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๋‹ต, ์ฆ‰ ๋ช‡ ๋ช…์ด ํƒˆ์ถœํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.


์˜ˆ์ œ ์ž…๋ ฅ

2
5
100

์˜ˆ์ œ ์ถœ๋ ฅ

2
10

๋ฌธ์ œ ์„ค๋ช…

๋นจ๊ฐ„๋ฌธ์ด ์—ด๋ฆฐ ๋ฌธ์ด๋‹ค. 1๋ผ์šด๋“œ์ด๋ฉด 1์˜ ๋ฐฐ์ˆ˜์˜ ๋ฌธ๋งŒ ๋ณธ๋‹ค. 2๋ผ์šด๋“œ ๋•Œ๋Š” 2์˜ ๋ฐฐ์ˆ˜์˜ ๋ฌธ๋งŒ ๋ณธ๋‹ค. 2์˜ ๋ฐฐ์ˆ˜์˜ ๋ฌธ๋“ค์ด ๋‹ซํ˜€์žˆ์œผ๋ฉด ์—ด๊ณ , ์—ด๋ ค ์žˆ์œผ๋ฉด ๋‹ซ๋Š”๋‹ค. ๋‚˜๋จธ์ง€ ๋ผ์šด๋“œ๋„ ์ด์™€ ๊ฐ™๋‹ค. 

 

Solution

import sys
input = sys.stdin.readline

T = int(input())
for _ in range(T):
    n = int(input())
    door = [False]*(n+1) #๋ฌธ์ด ๋‹ซํ˜€์žˆ๋Š” ๊ฑธ False๋กœ ํ‘œํ˜„
    cnt = 0 #๊ฒฐ๊ณผ๊ฐ’์„ ์œ„ํ•œ ์นด์šดํŠธ ๋ณ€์ˆ˜
    for i in range(1, n+1): #๋ผ์šด๋“œ
        for j in range(i, n+1): #๋ฐฉ
            if j % i == 0: #๋ฐฐ์ˆ˜๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ์กฐ๊ฑด๋ฌธ
                if door[j] == False: #๋ฌธ์ด ๋‹ซํ˜€์žˆ์œผ๋ฉด ์—ด๊ธฐ(True๋กœ ๋ณ€ํ™˜)
                    door[j] = True
                else: #๋ฌธ์ด ์—ด๋ ค์žˆ์œผ๋ฉด ๋‹ซ๊ธฐ (False๋กœ ๋ณ€ํ™˜)
                    door[j] = False
    for k in door:
        if k == True: #๋ฐฉ๋“ค ์ค‘์— ์—ด๋ ค์žˆ๋Š” ๊ฒƒ๋งŒ ์นด์šดํŠธ
            cnt += 1
    print(cnt)

๋‹ค๋ฅธ ํ’€์ด

from math import floor
t = int(input())
for i in range(t):
    n = int(input())
    print(floor(n ** 0.5))

๊ฐ„๋‹จํ•œ ํ’€์ด๋„ ์žˆ๋‹ค. ํ™•์‹คํžˆ ์œ— ์ฝ”๋“œ์™€ ๋น„๊ตํ•ด์„œ ์งง๊ณ  ๋ช…๋ฃŒํ•˜๋‹ค.

728x90