๋ฐฑ์ค€ | Baekjoon

[๋ฐฑ์ค€][10448] ์œ ๋ ˆ์นด ์ด๋ก  | ํŒŒ์ด์ฌ

sungkshon 2024. 12. 11. 20:20
๋ฐ˜์‘ํ˜•

๐Ÿ’ก๋ฌธ์ œ ๋ถ„์„ ์š”์•ฝ

Tn = 1+ 2+ 3+ … + n = n(n+1)/2

๋ชจ๋“  ์ž์—ฐ์ˆ˜๊ฐ€ ์ตœ๋Œ€ 3๊ฐœ์˜ ์‚ผ๊ฐ์ˆ˜์˜ ํ•ฉใ…‚์œผ๋กœ ํ‘œํ˜„๋  ์ˆ˜ ์žˆ๋‹ค.

๋งŒ์ผ ํ‘œํ˜„์ด ๋œ๋‹ค๋ฉด1, ์•„๋‹ˆ๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ’ก์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„

Tn์„ ์ •์˜ํ•ด์ค€๋‹ค.

์œ ๋ ˆ์นด ์กฐ๊ฑด์„ ์ •์˜ํ•ด์ค€๋‹ค.

์ž…๋ ฅ๋ฐ›์„ ์ˆ˜์˜ ๊ฐœ์ˆ˜ n ์„ ์ž…๋ ฅ๋ฐ›์€ ํ›„, n๊ฐœ์˜ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„์ค€๋‹ค.

๐Ÿ’ก์ฝ”๋“œ

triangle = []
for i in range(1, 46):    # k<1000 ์ด๋ฏ€๋กœ
    triangle.append(i*(i+1)//2)  # triangle์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด์ค€ ํ›„ triangle(Tn)์„ ์ •์˜ํ•ด์ค€๋‹ค.

eureka =[0] * 1001 #์ •๋‹ต ๋ฆฌ์ŠคํŠธ๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”.

for i in triangle:
    for j in triangle:
        for k in triangle:
            num = i + j + k
            if num <= 1000:
                eureka[num] =1 # ์„ธ์ˆ˜ i+ j+ k์˜ ํ•ฉ์ด 1000๋ณด๋‹ค ์ž‘์œผ๋ฉด 1

n = int(input())
for i in range(n):  # ์ž…๋ ฅ๋ฐ›๊ธฐ
    num = int(input())
    print(eureka[num])

 

๐Ÿ’ก ํ‹€๋ฆฐ ์ด์œ 

  1. Tn์„ ์ฝ”๋“œ๋กœ ์ •์˜
  2. ์œ ๋ ˆ์นด ์ˆ˜ ์ •์˜
  3. i+j+k์˜ ๊ฐ’์ด 1000๋ณด๋‹ค ์ž‘์œผ๋ฉด 1

๐Ÿ’ก ํ‹€๋ฆฐ ๋ถ€๋ถ„ ์ˆ˜์ • or ๋‹ค๋ฅธ ํ’€์ด

  1. for i in range(1, 46): # k<1000 ์ด๋ฏ€๋กœ
  2. eureka =[0] * 1001

๐Ÿ’ก ๋А๋‚€์  or ๊ธฐ์–ตํ• ์ •๋ณด

i+j+k์˜ ๊ฐ’์ด 1000๋ณด๋‹ค ์ž‘์œผ๋ฉด 1. ์ด ๋ถ€๋ถ„์ด ์ž˜ ์ดํ•ด๊ฐ€ ๊ฐ€์ง€ ์•Š์•˜์—ˆ๋‹คใ….

๋ฐ˜์‘ํ˜•