๐Ÿ“˜ Programming/Python

[Python3] ํŒŒ์ด์ฌ for-else ์‚ฌ์šฉ๋ฒ• ๋ฐ ํ™œ์šฉ ์˜ˆ์ œ (์ œ๊ณฑ๊ทผ ์ฐพ๊ธฐ)

ํ•œ์ฝ”๋”ฉ 2020. 10. 6. 00:10
728x90
728x90

๋ณธ ๋ฌธ์ œ์—์„œ๋Š” ์ž์—ฐ์ˆ˜ 5๊ฐœ๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

 

  1. ์ˆซ์ž๋ฅผ ์ฐจ๋ก€๋กœ ๊ณฑํ•ด ๋‚˜์˜จ ์ˆ˜๊ฐ€ ์ œ๊ณฑ์ˆ˜1๊ฐ€ ๋˜๋ฉด found๋ฅผ ์ถœ๋ ฅ
  2. ๋ชจ๋“  ์ˆ˜๋ฅผ ๊ณฑํ•ด๋„ ์ œ๊ณฑ์ˆ˜๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์•˜๋‹ค๋ฉด not found๋ฅผ ์ถœ๋ ฅ

 

์˜ˆ๋ฅผ ๋“ค์–ด, [2, 4, 2, 5, 1]์˜ ์ •์ˆ˜๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ๊ณฑํ•  ๋•Œ, ์ˆ˜๋ฅผ ๊ณฑํ•ด๋‚˜๊ฐ€๋ฉด 2, 8, 16, 80, 80 ์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.

 

16์€ 4๋ฅผ ์ œ๊ณฑํ•ด ๋‚˜์˜จ ์ˆ˜์ด๋ฏ€๋กœ, ์ด ์ˆ˜๋Š” ์ œ๊ณฑ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ found๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

๋ฐ˜๋Œ€๋กœ, [5, 1, 2, 3, 1]์˜ ์ •์ˆ˜๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ๊ณฑํ•  ๋•Œ, ์ˆ˜๋ฅผ ๊ณฑํ•ด๋‚˜๊ฐ€๋ฉด 5, 5, 10, 30, 30 ์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.


์ด์ค‘ ์–ด๋–ค ์ˆ˜๋„ ์ œ๊ณฑ ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ not found๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ด…์‹œ๋‹ค.

 

 

์ผ๋ฐ˜์ ์ธ ๊ตฌํ˜„ (for ๋ฐ˜๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ ์‚ฌ์šฉ)

res = "not found"
tmp = 1

for i in range(5):
  a = int(input())
  
  if (((tmp*a) ** 0.5) % 1) == 0:
    res = "found"
  tmp*=a

print(res)

 

์œ„ ์†Œ์Šค์ฝ”๋“œ๋Š” ์ง์ ‘ ์ž‘์„ฑํ•œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

 

5๋ฒˆ ๋ฐ˜๋ณตํ•˜๋ฉฐ ๊ฐ๊ฐ์˜ ์ˆ˜๋ฅผ ๊ณฑํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋น„๊ตํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

 

ํŒŒ์ด์ฌ์œผ๋กœ ๊ตฌํ˜„์„ ํ•  ๋•Œ์—๋Š” ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ for-else๋ฌธ์ž…๋‹ˆ๋‹ค.

 

 

for-else ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„

import math

numbers = [int(input()) for _ in range(5)]
multiplied = 1
for number in numbers:
    multiplied *= number
    if math.sqrt(multiplied) == int(math.sqrt(multiplied)):
        print('found')
        break
else:
    print('not found')

 

for-else๋ฌธ์„ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 

๋ฆฌ์ŠคํŠธ ๋‚ด ์›์†Œ๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ์กฐ๊ฑด๋ฌธ์„ ํ†ตํ•ด ๊ฒ€์‚ฌํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

 

๋ฐ˜๋ณต๋ฌธ ๋‚ด ์กฐ๊ฑด๋ฌธ์—์„œ ์กฐ๊ฑด์— ํ•ด๋‹นํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐœ์ƒ ์‹œ break๋ฌธ์„ ํ†ตํ•ด ๋ฐ˜๋ณต๋ฌธ์„ ๋น ์ ธ๋‚˜๊ฐ‘๋‹ˆ๋‹ค.

 

์ •์ƒ์ ์œผ๋กœ 5ํšŒ ๋ฐ˜๋ณต์„ ๋งˆ์น˜๋ฉด else๋ฌธ์— ํ•ด๋‹นํ•˜๋Š” ๊ตฌ๋ฌธ์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•