[๋ฐฑ์ค€/python] 2839๋ฒˆ : ์„คํƒ• ๋ฐฐ๋‹ฌ

2021. 3. 16. 23:30

๋ฌธ์ œ

์ƒ๊ทผ์ด๋Š” ์š”์ฆ˜ ์„คํƒ•๊ณต์žฅ์—์„œ ์„คํƒ•์„ ๋ฐฐ๋‹ฌํ•˜๊ณ  ์žˆ๋‹ค. ์ƒ๊ทผ์ด๋Š” ์ง€๊ธˆ ์‚ฌํƒ•๊ฐ€๊ฒŒ์— ์„คํƒ•์„ ์ •ํ™•ํ•˜๊ฒŒ Nํ‚ฌ๋กœ๊ทธ๋žจ์„ ๋ฐฐ๋‹ฌํ•ด์•ผ ํ•œ๋‹ค. ์„คํƒ•๊ณต์žฅ์—์„œ ๋งŒ๋“œ๋Š” ์„คํƒ•์€ ๋ด‰์ง€์— ๋‹ด๊ฒจ์ ธ ์žˆ๋‹ค. ๋ด‰์ง€๋Š” 3ํ‚ฌ๋กœ๊ทธ๋žจ ๋ด‰์ง€์™€ 5ํ‚ฌ๋กœ๊ทธ๋žจ ๋ด‰์ง€๊ฐ€ ์žˆ๋‹ค.

์ƒ๊ทผ์ด๋Š” ๊ท€์ฐฎ๊ธฐ ๋•Œ๋ฌธ์—, ์ตœ๋Œ€ํ•œ ์ ์€ ๋ด‰์ง€๋ฅผ ๋“ค๊ณ  ๊ฐ€๋ ค๊ณ  ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 18ํ‚ฌ๋กœ๊ทธ๋žจ ์„คํƒ•์„ ๋ฐฐ๋‹ฌํ•ด์•ผ ํ•  ๋•Œ, 3ํ‚ฌ๋กœ๊ทธ๋žจ ๋ด‰์ง€ 6๊ฐœ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋„ ๋˜์ง€๋งŒ, 5ํ‚ฌ๋กœ๊ทธ๋žจ 3๊ฐœ์™€ 3ํ‚ฌ๋กœ๊ทธ๋žจ 1๊ฐœ๋ฅผ ๋ฐฐ๋‹ฌํ•˜๋ฉด, ๋” ์ ์€ ๊ฐœ์ˆ˜์˜ ๋ด‰์ง€๋ฅผ ๋ฐฐ๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์ƒ๊ทผ์ด๊ฐ€ ์„คํƒ•์„ ์ •ํ™•ํ•˜๊ฒŒ Nํ‚ฌ๋กœ๊ทธ๋žจ ๋ฐฐ๋‹ฌํ•ด์•ผ ํ•  ๋•Œ, ๋ด‰์ง€ ๋ช‡ ๊ฐœ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋ฉด ๋˜๋Š”์ง€ ๊ทธ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— N์ด ์ฃผ์–ด์ง„๋‹ค. (3 ≤ N ≤ 5000)

 

์ถœ๋ ฅ

์ƒ๊ทผ์ด๊ฐ€ ๋ฐฐ๋‹ฌํ•˜๋Š” ๋ด‰์ง€์˜ ์ตœ์†Œ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ, ์ •ํ™•ํ•˜๊ฒŒ Nํ‚ฌ๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค๋ฉด -1์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

์ •๋‹ต

N = int(input())

if N % 5 % 3 != 0:
    result = -1
    for i in range(N // 5):
        d = N % 5 + 5 * (i+1)
        if d % 3 == 0:
            result = N // 5 - (i+1) + d / 3
            break
    print(int(result))
else:
    print(int(N // 5 + N % 5 / 3))

๋ด‰์ง€๋ฅผ ๊ฐ€์žฅ ์ ๊ฒŒ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋‹จ์ˆœํ•œ ๋ฐฉ๋ฒ•์€

5์˜ ๋ฐฐ์ˆ˜๋งŒํผ์„ ์ œ์™ธํ•˜๊ณ  ๋‚จ์€ ๋ฌด๊ฒŒ๋ฅผ 3ํ‚ฌ๋กœ๊ทธ๋žจ ๋ด‰์ง€๋กœ ๊ฐ€์ ธ๊ฐ€๋Š” ๊ฒƒ์ด๋‹ค. 

if N % 5 % 3 != 0:
	result = -1

5๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ 3์œผ๋กœ ๋‚˜๋ˆด์„ ๋•Œ ๋‚˜๋จธ์ง€๊ฐ€ 0์ด ์•„๋‹ˆ๋ฉด ์œ„์˜ ๋ฐฉ๋ฒ•๋Œ€๋กœ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์—†์Œ์„ ๋œปํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ์šฐ์„  result์— ๋ถˆ๊ฐ€๋Šฅ์„ ๋œปํ•˜๋Š” -1์„ ์ €์žฅํ•ด๋‘”๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด 12ํ‚ฌ๋กœ๊ทธ๋žจ์ผ ๋•Œ, 5ํ‚ฌ๋กœ๊ทธ๋žจ ๋ด‰์ง€๋ฅผ ์ตœ๋Œ€ 2๊ฐœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ

๋‚จ์€ ๋ฌด๊ฒŒ๊ฐ€ 3ํ‚ฌ๋กœ๊ทธ๋žจ ๋ด‰์ง€๋กœ ์•ˆ๋˜๋ฏ€๋กœ 3ํ‚ฌ๋กœ๊ทธ๋žจ ๋ด‰์ง€ 4๊ฐœ๋กœ ๋‚˜๋ˆ ์•ผํ•œ๋‹ค.

์œ„์™€ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ ์šฐ์„  5ํ‚ฌ๋กœ๊ทธ๋žจ ๋ด‰์ง€๋กœ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š”๋งŒํผ ์ตœ๋Œ€ํ•œ ๊ฐ€์ง„ ํ›„ 

5ํ‚ฌ๋กœ๊ทธ๋žจ ๋ด‰์ง€๋ฅผ ํ•˜๋‚˜์”ฉ ๋นผ๋ฉด์„œ ๋‚จ์€ ๋ฌด๊ฒŒ๊ฐ€ 3ํ‚ฌ๋กœ๊ทธ๋žจ ๋ด‰์ง€๋กœ ๋‚˜๋ˆ  ๊ฐ€์ ธ๊ฐ€๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธํ•œ๋‹ค.

12ํ‚ฌ๋กœ๊ทธ๋žจ์ผ ๊ฒฝ์šฐ 5ํ‚ฌ๋กœ๊ทธ๋žจ ๋ด‰์ง€๋ฅผ 2๊ฐœ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ 2๋ฒˆ ๋ฐ˜๋ณตํ•œ๋‹ค.

for i in range(N // 5):
        d = N % 5 + 5 * (i+1)
        if d % 3 == 0:
            result = N // 5 - (i+1) + d / 3
            break

5ํ‚ฌ๋กœ๊ทธ๋žจ ๋ด‰์ง€๋กœ ์ตœ๋Œ€ํ•œ ๊ฐ€์ง„ ํ›„ ๋‚จ์€ ๋ฌด๊ฒŒ์— 5ํ‚ฌ๋กœ๊ทธ๋žจ ๋ด‰์ง€๋ฅผ ๋บ€ ๋งŒํผ์˜ ๋ฌด๊ฒŒ๋ฅผ ๋”ํ•ด d์— ์ €์žฅํ•œ๋‹ค.

d๊ฐ€ 3์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์งˆ ๊ฒฝ์šฐ ๊ฐ€๋Šฅํ•œ ์˜๋ฏธ์ด๋ฏ€๋กœ result๊ฐ’์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ €์žฅํ•œ ํ›„ breack๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ๋น ์ ธ๋‚˜์˜จ๋‹ค.

728x90

BELATED ARTICLES

more