๐Ÿงฎ ๊ธฐ์ดˆ์ˆ˜ํ•™์œผ๋กœ ์ดํ•ดํ•˜๋Š” ์ฝ”๋”ฉ: ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ์ดˆ ๐Ÿ–ฅ๏ธ

์ฝ˜ํ…์ธ  ๋Œ€ํ‘œ ์ด๋ฏธ์ง€ - ๐Ÿงฎ ๊ธฐ์ดˆ์ˆ˜ํ•™์œผ๋กœ ์ดํ•ดํ•˜๋Š” ์ฝ”๋”ฉ: ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ์ดˆ ๐Ÿ–ฅ๏ธ

 

 

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๊ฐ€์žฅ ํฐ ์žฅ๋ฒฝ ์ค‘ ํ•˜๋‚˜๋Š” ๋ฐ”๋กœ "์ˆ˜ํ•™"์ž…๋‹ˆ๋‹ค. "๋‚˜๋Š” ์ˆ˜ํ•™์„ ์ž˜ ๋ชปํ•ด์„œ ์ฝ”๋”ฉ์€ ํ•  ์ˆ˜ ์—†์–ด"๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ถ„๋“ค์ด ๋งŽ์ฃ . ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ํ•„์š”ํ•œ ์ˆ˜ํ•™์€ ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜คํžˆ๋ ค ๊ธฐ์ดˆ์ ์ธ ์ˆ˜ํ•™ ๊ฐœ๋…๋งŒ์œผ๋กœ๋„ ์ถฉ๋ถ„ํžˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์„ธ๊ณ„๋กœ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.

์ด ๊ธ€์—์„œ๋Š” ๊ธฐ์ดˆ ์ˆ˜ํ•™ ๊ฐœ๋…์„ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ๋ณธ์„ ์ดํ•ดํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณผ ๊ฑฐ์˜ˆ์š”. ์ˆ˜ํ•™์„ ์–ด๋ ค์›Œํ•˜์‹œ๋Š” ๋ถ„๋“ค๋„ ๊ฑฑ์ • ๋งˆ์„ธ์š”. ์šฐ๋ฆฌ๋Š” ์•„์ฃผ ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…๋ถ€ํ„ฐ ์‹œ์ž‘ํ•  ํ…Œ๋‹ˆ๊นŒ์š”. ๐Ÿ˜Š

์ˆ˜ํ•™ + ์ฝ”๋”ฉ = ๐Ÿ’ก ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ์ดˆ ์ˆ˜ํ•™๊ณผ ์ฝ”๋”ฉ์˜ ๋งŒ๋‚จ

์ž, ๊ทธ๋Ÿผ ์ด์ œ ๋ณธ๊ฒฉ์ ์œผ๋กœ ๊ธฐ์ดˆ ์ˆ˜ํ•™๊ณผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ด€๊ณ„์— ๋Œ€ํ•ด ์•Œ์•„๋ณผ๊นŒ์š”? ๐Ÿš€

1. ์ˆ˜์™€ ๋ณ€์ˆ˜: ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ๋ณธ ์š”์†Œ ๐Ÿ”ข

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์š”์†Œ๋Š” ๋ฐ”๋กœ '์ˆ˜'์™€ '๋ณ€์ˆ˜'์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ดˆ๋“ฑํ•™๊ต ๋•Œ ๋ฐฐ์šด ์ˆ˜ํ•™์˜ ๊ธฐ์ดˆ์™€ ๋งค์šฐ ์œ ์‚ฌํ•ด์š”.

1.1 ์ˆ˜์˜ ๊ฐœ๋…

์ˆ˜ํ•™์—์„œ ์šฐ๋ฆฌ๋Š” ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ์ˆ˜๋ฅผ ๋ฐฐ์›๋‹ˆ๋‹ค:

  • ์ž์—ฐ์ˆ˜: 1, 2, 3, 4, ...
  • ์ •์ˆ˜: ..., -2, -1, 0, 1, 2, ...
  • ์œ ๋ฆฌ์ˆ˜: ๋ถ„์ˆ˜ ํ˜•ํƒœ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ์ˆ˜
  • ์‹ค์ˆ˜: ์†Œ์ˆ˜์ ์ด ์žˆ๋Š” ์ˆ˜

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋„ ์ด๋Ÿฌํ•œ ์ˆ˜์˜ ๊ฐœ๋…์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์ปดํ“จํ„ฐ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ๋•Œ๋ฌธ์— '์ž๋ฃŒํ˜•'์ด๋ผ๋Š” ๊ฐœ๋…์„ ํ†ตํ•ด ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•ด์š”.

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ์˜ ์ž๋ฃŒํ˜• ์˜ˆ์‹œ:

  • ์ •์ˆ˜ํ˜•(Integer): int
  • ์‹ค์ˆ˜ํ˜•(Float): float, double
  • ๋ฌธ์žํ˜•(Character): char
  • ๋…ผ๋ฆฌํ˜•(Boolean): bool

1.2 ๋ณ€์ˆ˜์˜ ๊ฐœ๋…

์ˆ˜ํ•™์—์„œ ์šฐ๋ฆฌ๋Š” 'x', 'y'์™€ ๊ฐ™์€ ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•ด ์•Œ๋ ค์ง€์ง€ ์•Š์€ ๊ฐ’์ด๋‚˜ ๋ณ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์„ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ '๋ณ€์ˆ˜'์˜ ๊ฐœ๋…์ด์ฃ .

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ์˜ ๋ณ€์ˆ˜๋„ ์ด์™€ ๋งค์šฐ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๋ณ€์ˆ˜์— ์ข€ ๋” ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„์„ ๋ถ™์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ณ€์ˆ˜์˜ ๊ฐœ๋… ๋ณ€์ˆ˜ = ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ์ƒ์ž age = 25 name = "John"

์œ„์˜ ์˜ˆ์‹œ์—์„œ 'age'์™€ 'name'์€ ๋ณ€์ˆ˜๋ช…์ด๊ณ , ๊ฐ๊ฐ 25์™€ "John"์ด๋ผ๋Š” ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

1.3 ์ˆ˜ํ•™ ์—ฐ์‚ฐ๊ณผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

๊ธฐ์ดˆ ์ˆ˜ํ•™์—์„œ ๋ฐฐ์šฐ๋Š” ์‚ฌ์น™์—ฐ์‚ฐ(+, -, *, /)์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€์ ์ธ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด์š”.

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ฃผ์š” ์—ฐ์‚ฐ์ž:

  • + (๋ง์…ˆ), - (๋บ„์…ˆ), * (๊ณฑ์…ˆ), / (๋‚˜๋ˆ—์…ˆ)
  • % (๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ)
  • ++ (1 ์ฆ๊ฐ€), -- (1 ๊ฐ์†Œ)
  • == (๊ฐ™๋‹ค), != (๋‹ค๋ฅด๋‹ค), > (ํฌ๋‹ค), < (์ž‘๋‹ค), >= (ํฌ๊ฑฐ๋‚˜ ๊ฐ™๋‹ค), <= (์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค)

์ด๋Ÿฌํ•œ ์—ฐ์‚ฐ์ž๋“ค์„ ์ด์šฉํ•ด ๋‹ค์–‘ํ•œ ์ˆ˜ํ•™์  ๊ณ„์‚ฐ๊ณผ ๋…ผ๋ฆฌ์  ํŒ๋‹จ์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ„๋‹จํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ์–ด์š”:


age = 25
birth_year = 2023 - age
is_adult = age >= 18

print("๋‹น์‹ ์˜ ์ถœ์ƒ๋…„๋„๋Š”", birth_year, "๋…„์ž…๋‹ˆ๋‹ค.")
print("์„ฑ์ธ ์—ฌ๋ถ€:", is_adult)

์ด ํ”„๋กœ๊ทธ๋žจ์€ ๋‚˜์ด๋ฅผ ์ด์šฉํ•ด ์ถœ์ƒ๋…„๋„๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , ์„ฑ์ธ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ๋บ„์…ˆ(-)๊ณผ ๋น„๊ต ์—ฐ์‚ฐ์ž(>=)๋ฅผ ์‚ฌ์šฉํ–ˆ์ฃ .

์ด์ฒ˜๋Ÿผ ๊ธฐ์ดˆ ์ˆ˜ํ•™์˜ ๊ฐœ๋…๋“ค์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ๋ณธ์ด ๋˜๋ฉฐ, ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋” ๋ณต์žกํ•œ ๋กœ์ง์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿง ๐Ÿ’ป

2. ํ•จ์ˆ˜: ์ˆ˜ํ•™๊ณผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ต์ฐจ์  ๐Ÿ“Š

์ˆ˜ํ•™์—์„œ ํ•จ์ˆ˜๋Š” ์ž…๋ ฅ๊ฐ’์— ๋”ฐ๋ผ ์ถœ๋ ฅ๊ฐ’์ด ๊ฒฐ์ •๋˜๋Š” ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, f(x) = 2x + 1์ด๋ผ๋Š” ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค๋ฉด, x์— ์–ด๋–ค ๊ฐ’์„ ๋„ฃ๋Š๋ƒ์— ๋”ฐ๋ผ y๊ฐ’์ด ๊ฒฐ์ •๋˜์ฃ .

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ์˜ ํ•จ์ˆ˜๋„ ์ด์™€ ๋งค์šฐ ์œ ์‚ฌํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์ž…๋ ฅ๊ฐ’(๋งค๊ฐœ๋ณ€์ˆ˜)์„ ๋ฐ›์•„ ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ ํ›„ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ฝ”๋“œ์˜ ๋ฌถ์Œ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์–ด์š”.

์ˆ˜ํ•™ ํ•จ์ˆ˜ vs ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•จ์ˆ˜ ์ˆ˜ํ•™ ํ•จ์ˆ˜ f(x) = 2x + 1 x โ†’ ๊ณ„์‚ฐ โ†’ y ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•จ์ˆ˜ def f(x): return 2*x + 1

2.1 ํ•จ์ˆ˜์˜ ๊ตฌ์„ฑ์š”์†Œ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค:

  • ํ•จ์ˆ˜๋ช…: ํ•จ์ˆ˜๋ฅผ ์‹๋ณ„ํ•˜๋Š” ์ด๋ฆ„
  • ๋งค๊ฐœ๋ณ€์ˆ˜(ํŒŒ๋ผ๋ฏธํ„ฐ): ํ•จ์ˆ˜์— ์ž…๋ ฅ๋˜๋Š” ๊ฐ’
  • ํ•จ์ˆ˜ ๋ณธ๋ฌธ: ํ•จ์ˆ˜๊ฐ€ ์ˆ˜ํ–‰ํ•  ์ž‘์—…์„ ์ •์˜ํ•˜๋Š” ์ฝ”๋“œ
  • ๋ฐ˜ํ™˜๊ฐ’: ํ•จ์ˆ˜๊ฐ€ ์ž‘์—…์„ ๋งˆ์น˜๊ณ  ๋Œ๋ ค์ฃผ๋Š” ๊ฒฐ๊ณผ๊ฐ’

์˜ˆ๋ฅผ ๋“ค์–ด, ํŒŒ์ด์ฌ์—์„œ ์œ„์˜ ์ˆ˜ํ•™ ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:


def f(x):
    return 2 * x + 1

result = f(3)
print(result)  # ์ถœ๋ ฅ: 7

์ด ํ•จ์ˆ˜๋Š” x๋ผ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ›์•„, 2x + 1์„ ๊ณ„์‚ฐํ•˜์—ฌ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

2.2 ํ•จ์ˆ˜์˜ ํ™œ์šฉ

ํ•จ์ˆ˜๋Š” ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ๋ชจ๋“ˆํ™”๋ฅผ ๋†’์ด๋Š” ๋ฐ ๋งค์šฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ์ž‘์—…์„ ์ž‘์€ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ํ•จ์ˆ˜๋กœ ๋งŒ๋“ค๋ฉด, ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๋„ ๋†’์•„์ง€๊ณ  ์œ ์ง€๋ณด์ˆ˜๋„ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์›์˜ ๋„“์ด๋ฅผ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๋ณผ๊นŒ์š”?


import math

def calculate_circle_area(radius):
    return math.pi * radius ** 2

area = calculate_circle_area(5)
print(f"๋ฐ˜์ง€๋ฆ„์ด 5์ธ ์›์˜ ๋„“์ด: {area:.2f}")

์ด ํ•จ์ˆ˜๋Š” ์›์˜ ๋ฐ˜์ง€๋ฆ„์„ ์ž…๋ ฅ๋ฐ›์•„ ๋„“์ด๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜ํ•™์˜ ๊ณต์‹(ฯ€rยฒ)์„ ๊ทธ๋Œ€๋กœ ์ฝ”๋“œ๋กœ ์˜ฎ๊ธด ๊ฒƒ์ด์ฃ .

2.3 ์žฌ๊ท€ ํ•จ์ˆ˜: ์ˆ˜ํ•™์  ์‚ฌ๊ณ ์˜ ๊ฒฐ์ •์ฒด

์žฌ๊ท€ ํ•จ์ˆ˜๋Š” ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ˆ˜ํ•™์˜ ๊ท€๋‚ฉ๋ฒ•๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•œ ๊ฐœ๋…์ด์—์š”.

๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ ํŒฉํ† ๋ฆฌ์–ผ ๊ณ„์‚ฐ์„ ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:


def factorial(n):
    if n == 0 or n == 1:
        return 1
    else:
        return n * factorial(n-1)

print(factorial(5))  # ์ถœ๋ ฅ: 120

์ด ํ•จ์ˆ˜๋Š” n!์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. n์ด 0์ด๋‚˜ 1์ด๋ฉด 1์„ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด n๊ณผ (n-1)!์˜ ๊ณฑ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๐ŸŒŸ ์žฌ๋Šฅ๋„ท Tip: ์žฌ๊ท€ ํ•จ์ˆ˜๋Š” ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ž˜๋ชป ์‚ฌ์šฉํ•˜๋ฉด ๋ฌดํ•œ ๋ฃจํ”„์— ๋น ์งˆ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•ด์š”. ์žฌ๋Šฅ๋„ท์—์„œ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐ•์ขŒ๋ฅผ ํ†ตํ•ด ์žฌ๊ท€ ํ•จ์ˆ˜์˜ ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ๋ฒ•์„ ๋ฐฐ์›Œ๋ณด๋Š” ๊ฒƒ์€ ์–ด๋–จ๊นŒ์š”?

์ด์ฒ˜๋Ÿผ ํ•จ์ˆ˜๋Š” ์ˆ˜ํ•™์  ๊ฐœ๋…์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์žˆ์–ด ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์ดˆ ์ˆ˜ํ•™์˜ ์ดํ•ด๋Š” ํšจ๊ณผ์ ์ธ ํ•จ์ˆ˜ ์„ค๊ณ„์™€ ์‚ฌ์šฉ์— ํฐ ๋„์›€์ด ๋  ๊ฑฐ์˜ˆ์š”. ๐Ÿงฎ๐Ÿ–ฅ๏ธ

3. ๋…ผ๋ฆฌ์™€ ์กฐ๊ฑด๋ฌธ: ์ˆ˜ํ•™์  ์‚ฌ๊ณ ์˜ ํ™•์žฅ ๐Ÿง 

์ˆ˜ํ•™์—์„œ ์šฐ๋ฆฌ๋Š” ๋ช…์ œ์™€ ์กฐ๊ฑด์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. "๋งŒ์•ฝ A๋ผ๋ฉด B์ด๋‹ค"์™€ ๊ฐ™์€ ํ˜•ํƒœ์˜ ๋ฌธ์žฅ์„ ๋งŽ์ด ๋ณด์…จ์„ ๊ฑฐ์˜ˆ์š”. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๋…ผ๋ฆฌ์  ์‚ฌ๊ณ ๋ฅผ '์กฐ๊ฑด๋ฌธ'์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

3.1 ๋ถˆ ๋Œ€์ˆ˜(Boolean Algebra)

์กฐ์ง€ ๋ถˆ์ด ๋ฐœ์ „์‹œํ‚จ ๋ถˆ ๋Œ€์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์˜ ๊ธฐ์ดˆ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ฐธ(True)๊ณผ ๊ฑฐ์ง“(False) ๋‘ ๊ฐ€์ง€ ๊ฐ’๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋…ผ๋ฆฌ๋ฅผ ํ‘œํ˜„ํ•˜์ฃ .

๋ถˆ ๋Œ€์ˆ˜์˜ ๊ธฐ๋ณธ ์—ฐ์‚ฐ ๋ถˆ ๋Œ€์ˆ˜์˜ ๊ธฐ๋ณธ ์—ฐ์‚ฐ AND True AND True = True True AND False = False OR True OR False = True False OR False = False NOT NOT True = False NOT False = True

์ด๋Ÿฌํ•œ ๋ถˆ ๋Œ€์ˆ˜์˜ ๊ฐœ๋…์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์กฐ๊ฑด๋ฌธ๊ณผ ์ง์ ‘์ ์œผ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

3.2 ์กฐ๊ฑด๋ฌธ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์กฐ๊ฑด๋ฌธ์€ ์ฃผ๋กœ if-else ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ˆ˜ํ•™์˜ ๊ฒฝ์šฐ ๋ถ„๋ฅ˜์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.


if ์กฐ๊ฑด:
    # ์กฐ๊ฑด์ด ์ฐธ์ผ ๋•Œ ์‹คํ–‰ํ•  ์ฝ”๋“œ
else:
    # ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ผ ๋•Œ ์‹คํ–‰ํ•  ์ฝ”๋“œ

์˜ˆ๋ฅผ ๋“ค์–ด, ์ง์ˆ˜์™€ ํ™€์ˆ˜๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด๋ณผ๊นŒ์š”?


def is_even(number):
    if number % 2 == 0:
        return True
    else:
        return False

print(is_even(4))  # ์ถœ๋ ฅ: True
print(is_even(7))  # ์ถœ๋ ฅ: False

์ด ํ•จ์ˆ˜๋Š” ์ˆ˜ํ•™์˜ ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ(%)๊ณผ ์กฐ๊ฑด๋ฌธ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์ง์ˆ˜ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค.

3.3 ๋ณตํ•ฉ ์กฐ๊ฑด๋ฌธ

์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ๊ฒฐํ•ฉํ•  ๋•Œ๋Š” ๋ถˆ ๋Œ€์ˆ˜์˜ AND, OR, NOT ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


def grade(score):
    if score >= 90 and score <= 100:
        return 'A'
    elif score >= 80 and score < 90:
        return 'B'
    elif score >= 70 and score < 80:
        return 'C'
    elif score >= 60 and score < 70:
        return 'D'
    else:
        return 'F'

print(grade(85))  # ์ถœ๋ ฅ: B

์ด ํ•จ์ˆ˜๋Š” ์ ์ˆ˜์— ๋”ฐ๋ผ ๋“ฑ๊ธ‰์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์กฐ๊ฑด์„ AND ์—ฐ์‚ฐ์œผ๋กœ ๊ฒฐํ•ฉํ•˜์—ฌ ๋ณต์žกํ•œ ์กฐ๊ฑด์„ ํ‘œํ˜„ํ•˜๊ณ  ์žˆ์ฃ .

3.4 ๋“œ๋ชจ๋ฅด๊ฐ„์˜ ๋ฒ•์น™

๋ถˆ ๋Œ€์ˆ˜์—์„œ ์ค‘์š”ํ•œ ๋“œ๋ชจ๋ฅด๊ฐ„์˜ ๋ฒ•์น™๋„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค:

๋“œ๋ชจ๋ฅด๊ฐ„์˜ ๋ฒ•์น™:

  • not (A and B) == (not A) or (not B)
  • not (A or B) == (not A) and (not B)

์ด ๋ฒ•์น™์€ ๋ณต์žกํ•œ ์กฐ๊ฑด์„ ๋‹จ์ˆœํ™”ํ•˜๊ฑฐ๋‚˜ ์ตœ์ ํ™”ํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.


def is_valid_user(age, is_member):
    # ํšŒ์›์ด ์•„๋‹ˆ๊ฑฐ๋‚˜ ๋‚˜์ด๊ฐ€ 18์„ธ ๋ฏธ๋งŒ์ธ ๊ฒฝ์šฐ ์œ ํšจํ•˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž
    if not (is_member and age >= 18):
        return False
    return True

print(is_valid_user(20, True))   # ์ถœ๋ ฅ: True
print(is_valid_user(16, True))   # ์ถœ๋ ฅ: False
print(is_valid_user(25, False))  # ์ถœ๋ ฅ: False

์ด ํ•จ์ˆ˜๋Š” ๋“œ๋ชจ๋ฅด๊ฐ„์˜ ๋ฒ•์น™์„ ์ด์šฉํ•ด ์กฐ๊ฑด์„ ๊ฐ„๋‹จํžˆ ํ‘œํ˜„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ก ์žฌ๋Šฅ๋„ท Tip: ๋…ผ๋ฆฌ์™€ ์กฐ๊ฑด๋ฌธ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„์˜ ๊ธฐ์ดˆ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์žฌ๋Šฅ๋„ท์—์„œ ์ œ๊ณตํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐ•์ขŒ๋ฅผ ํ†ตํ•ด ๋” ๋ณต์žกํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ์„ ํ‚ค์›Œ๋ณด๋Š” ๊ฒƒ์€ ์–ด๋–จ๊นŒ์š”? ๊ธฐ์ดˆ ์ˆ˜ํ•™์„ ํ™œ์šฉํ•œ ๋…ผ๋ฆฌ์  ์‚ฌ๊ณ ๋ ฅ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹ค๋ ฅ ํ–ฅ์ƒ์— ํฐ ๋„์›€์ด ๋  ๊ฑฐ์˜ˆ์š”!

์ด์ฒ˜๋Ÿผ ์ˆ˜ํ•™์˜ ๋…ผ๋ฆฌ์™€ ๋ช…์ œ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์กฐ๊ฑด๋ฌธ์œผ๋กœ ์ง์ ‘์ ์œผ๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ๊ธฐ์ดˆ ์ˆ˜ํ•™์˜ ๋…ผ๋ฆฌ์  ์‚ฌ๊ณ ๋ ฅ์„ ํ‚ค์šฐ๋ฉด, ๋” ํšจ์œจ์ ์ด๊ณ  ์ •ํ™•ํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์„ ๊ฑฐ์˜ˆ์š”. ๐Ÿง ๐Ÿ’ป

4. ๋ฐ˜๋ณต๋ฌธ: ์ˆ˜์—ด๊ณผ ๊ธ‰์ˆ˜์˜ ๊ตฌํ˜„ ๐Ÿ”„

์ˆ˜ํ•™์—์„œ ์ˆ˜์—ด๊ณผ ๊ธ‰์ˆ˜๋Š” ํŠน์ • ํŒจํ„ด์ด ๋ฐ˜๋ณต๋˜๋Š” ์ˆ˜์˜ ๋‚˜์—ด์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๊ฐœ๋…์„ '๋ฐ˜๋ณต๋ฌธ'์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

4.1 ๊ธฐ๋ณธ์ ์ธ ๋ฐ˜๋ณต๋ฌธ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐ˜๋ณต๋ฌธ์€ for๋ฌธ๊ณผ while๋ฌธ์ž…๋‹ˆ๋‹ค.

for๋ฌธ vs while๋ฌธ for๋ฌธ for i in range(5): print(i) ์ •ํ•ด์ง„ ํšŸ์ˆ˜๋งŒํผ ๋ฐ˜๋ณต while๋ฌธ while condition: # ์ฝ”๋“œ ์‹คํ–‰ ์กฐ๊ฑด์ด ์ฐธ์ธ ๋™์•ˆ ๋ฐ˜๋ณต

4.2 ์ˆ˜์—ด์˜ ๊ตฌํ˜„

์ˆ˜ํ•™์—์„œ ์ˆ˜์—ด์€ ํŠน์ • ๊ทœ์น™์— ๋”ฐ๋ผ ๋‚˜์—ด๋œ ์ˆ˜์˜ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋“ฑ์ฐจ์ˆ˜์—ด์ด๋‚˜ ๋“ฑ๋น„์ˆ˜์—ด์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ๊ตฌํ˜„ํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


# ๋“ฑ์ฐจ์ˆ˜์—ด ์ƒ์„ฑ ํ•จ์ˆ˜
def arithmetic_sequence(a1, d, n):
    return [a1 + d*i for i in range(n)]

# ๋“ฑ๋น„์ˆ˜์—ด ์ƒ์„ฑ ํ•จ์ˆ˜
def geometric_sequence(a1, r, n):
    return [a1 * r**i for i in range(n)]

print(arithmetic_sequence(1, 2, 5))  # ์ถœ๋ ฅ: [1, 3, 5, 7, 9]
print(geometric_sequence(1, 2, 5))   # ์ถœ๋ ฅ: [1, 2, 4, 8, 16]

์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜์ด๋ผ๋Š” ํŒŒ์ด์ฌ์˜ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ˆ˜ํ•™์  ์ง‘ํ•ฉ ํ‘œ๊ธฐ๋ฒ•๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•˜์ฃ .

4.3 ๊ธ‰์ˆ˜์˜ ๊ตฌํ˜„

๊ธ‰์ˆ˜๋Š” ์ˆ˜์—ด์˜ ๊ฐ ํ•ญ์„ ๋”ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•ด ์ด๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


def sum_of_series(sequence):
    return sum(sequence)

arithmetic_sum = sum_of_series(arithmetic_sequence(1, 2, 5))
geometric_sum = sum_of_series(geometric_sequence(1, 2, 5))

print(f"๋“ฑ์ฐจ์ˆ˜์—ด์˜ ํ•ฉ: {arithmetic_sum}")  #  ์ถœ๋ ฅ: 25")
print(f"๋“ฑ๋น„์ˆ˜์—ด์˜ ํ•ฉ: {geometric_sum}")  # ์ถœ๋ ฅ: 31

์ด ์˜ˆ์ œ์—์„œ๋Š” ํŒŒ์ด์ฌ์˜ ๋‚ด์žฅ ํ•จ์ˆ˜ sum()์„ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ, ์ง์ ‘ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

4.4 ๋ฌดํ•œ๊ธ‰์ˆ˜์™€ ์ˆ˜๋ ด

์ˆ˜ํ•™์—์„œ ๋ฌดํ•œ๊ธ‰์ˆ˜๋Š” ํ•ญ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋ฌดํ•œํ•œ ๊ธ‰์ˆ˜๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์ด๋ฅผ ๊ทผ์‚ฌ์ ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


def approximate_pi():
    pi = 0
    for k in range(1000000):
        pi += ((-1)**k) / (2*k + 1)
    return 4 * pi

print(f"ฯ€์˜ ๊ทผ์‚ฌ๊ฐ’: {approximate_pi()}")

์ด ํ•จ์ˆ˜๋Š” Leibniz ๊ธ‰์ˆ˜๋ฅผ ์ด์šฉํ•ด ฯ€์˜ ๊ฐ’์„ ๊ทผ์‚ฌ์ ์œผ๋กœ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ํ•ญ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋Š˜๋ฆด์ˆ˜๋ก ๋” ์ •ํ™•ํ•œ ๊ฐ’์— ์ˆ˜๋ ดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๐ŸŒŸ ์žฌ๋Šฅ๋„ท Tip: ๋ฌดํ•œ๊ธ‰์ˆ˜์˜ ๊ฐœ๋…์€ ์ปดํ“จํ„ฐ ๊ทธ๋ž˜ํ”ฝ์Šค๋‚˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์—์„œ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. ์žฌ๋Šฅ๋„ท์˜ ๊ณ ๊ธ‰ ์ˆ˜ํ•™ ๊ฐ•์ขŒ๋ฅผ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ๊ฐœ๋…๋“ค์„ ๋” ๊นŠ์ด ์žˆ๊ฒŒ ํ•™์Šตํ•ด๋ณด๋Š” ๊ฒƒ์€ ์–ด๋–จ๊นŒ์š”? ์ˆ˜ํ•™์  ์ง๊ด€๋ ฅ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋Šฅ๋ ฅ ํ–ฅ์ƒ์— ํฐ ๋„์›€์ด ๋  ๊ฑฐ์˜ˆ์š”!

4.5 ์žฌ๊ท€์™€ ๋ฐ˜๋ณต

์ˆ˜ํ•™์˜ ๊ท€๋‚ฉ๋ฒ•๊ณผ ์œ ์‚ฌํ•œ ๊ฐœ๋…์œผ๋กœ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์žฌ๊ท€๋Š” ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜๋กœ, ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.


# ํŒฉํ† ๋ฆฌ์–ผ ๊ณ„์‚ฐ - ๋ฐ˜๋ณต๋ฌธ ์‚ฌ์šฉ
def factorial_iterative(n):
    result = 1
    for i in range(1, n+1):
        result *= i
    return result

# ํŒฉํ† ๋ฆฌ์–ผ ๊ณ„์‚ฐ - ์žฌ๊ท€ ์‚ฌ์šฉ
def factorial_recursive(n):
    if n == 0 or n == 1:
        return 1
    else:
        return n * factorial_recursive(n-1)

print(f"5! (๋ฐ˜๋ณต): {factorial_iterative(5)}")
print(f"5! (์žฌ๊ท€): {factorial_recursive(5)}")

๋‘ ๋ฐฉ์‹ ๋ชจ๋‘ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์ง€๋งŒ, ๋ฌธ์ œ์— ๋”ฐ๋ผ ๋” ์ ํ•ฉํ•œ ๋ฐฉ์‹์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ฒ˜๋Ÿผ ์ˆ˜์—ด๊ณผ ๊ธ‰์ˆ˜์˜ ๊ฐœ๋…์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋ฐ˜๋ณต๋ฌธ๊ณผ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ด€๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์ดˆ ์ˆ˜ํ•™์˜ ์ดํ•ด๋Š” ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„์™€ ๊ตฌํ˜„์— ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ๐Ÿงฎ๐Ÿ”„

5. ๊ธฐํ•˜ํ•™: ๊ทธ๋ž˜ํ”ฝ๊ณผ ๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ์ดˆ ๐Ÿ“

๊ธฐํ•˜ํ•™์€ ๋„ํ˜•๊ณผ ๊ณต๊ฐ„์˜ ์„ฑ์งˆ์„ ๋‹ค๋ฃจ๋Š” ์ˆ˜ํ•™์˜ ํ•œ ๋ถ„์•ผ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ปดํ“จํ„ฐ ๊ทธ๋ž˜ํ”ฝ์Šค, ๊ฒŒ์ž„ ๊ฐœ๋ฐœ, ๋กœ๋ณดํ‹ฑ์Šค ๋“ฑ ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์˜์—ญ์—์„œ ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

5.1 ์ขŒํ‘œ๊ณ„์™€ ๋ฒกํ„ฐ

2D ๋˜๋Š” 3D ๊ณต๊ฐ„์—์„œ์˜ ์œ„์น˜์™€ ๋ฐฉํ–ฅ์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ขŒํ‘œ๊ณ„์™€ ๋ฒกํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

x y ๋ฒกํ„ฐ (200, 150) 2D ์ขŒํ‘œ๊ณ„์™€ ๋ฒกํ„ฐ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์ด๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:


import math

class Vector2D:
    def __init__(self, x, y):
        self.x = x
        self.y = y
    
    def magnitude(self):
        return math.sqrt(self.x**2 + self.y**2)
    
    def normalize(self):
        mag = self.magnitude()
        return Vector2D(self.x / mag, self.y / mag)

v = Vector2D(200, 150)
print(f"๋ฒกํ„ฐ์˜ ํฌ๊ธฐ: {v.magnitude():.2f}")
print(f"์ •๊ทœํ™”๋œ ๋ฒกํ„ฐ: ({v.normalize().x:.2f}, {v.normalize().y:.2f})")

5.2 ์‚ผ๊ฐํ•จ์ˆ˜์™€ ํšŒ์ „

๊ฒŒ์ž„์ด๋‚˜ ๊ทธ๋ž˜ํ”ฝ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ฌผ์ฒด์˜ ํšŒ์ „์€ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์‚ผ๊ฐํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


import math

def rotate_point(x, y, angle):
    """
    ์  (x, y)๋ฅผ ์›์ ์„ ์ค‘์‹ฌ์œผ๋กœ angle๋งŒํผ ํšŒ์ „์‹œํ‚จ ์ƒˆ๋กœ์šด ์ขŒํ‘œ๋ฅผ ๋ฐ˜ํ™˜
    """
    new_x = x * math.cos(angle) - y * math.sin(angle)
    new_y = x * math.sin(angle) + y * math.cos(angle)
    return new_x, new_y

# ์  (1, 0)์„ 90๋„(ฯ€/2 ๋ผ๋””์•ˆ) ํšŒ์ „
rotated = rotate_point(1, 0, math.pi/2)
print(f"ํšŒ์ „๋œ ์ ์˜ ์ขŒํ‘œ: ({rotated[0]:.2f}, {rotated[1]:.2f})")

5.3 ์ถฉ๋Œ ๊ฐ์ง€

๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ถฉ๋Œ ๊ฐ์ง€๋Š” ๋งค์šฐ ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๊ธฐํ•˜ํ•™์  ๊ณ„์‚ฐ์„ ํ†ตํ•ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.


def circle_collision(x1, y1, r1, x2, y2, r2):
    """
    ๋‘ ์›์˜ ์ถฉ๋Œ ์—ฌ๋ถ€๋ฅผ ํ™•์ธ
    """
    distance = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
    return distance <= r1 + r2

# ๋‘ ์›์˜ ์ถฉ๋Œ ํ™•์ธ
collision = circle_collision(0, 0, 5, 3, 4, 2)
print(f"์ถฉ๋Œ ์—ฌ๋ถ€: {collision}")

5.4 ๊ฒฝ๋กœ ์ฐพ๊ธฐ์™€ ๊ทธ๋ž˜ํ”„ ์ด๋ก 

๊ฒŒ์ž„์—์„œ AI์˜ ๊ฒฝ๋กœ ์ฐพ๊ธฐ๋‚˜ ๋„คํŠธ์›Œํฌ ๋ถ„์„ ๋“ฑ์— ๊ทธ๋ž˜ํ”„ ์ด๋ก ์ด ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ๋Œ€ํ‘œ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.


import heapq

def dijkstra(graph, start):
    distances = {node: float('inf') for node in graph}
    distances[start] = 0
    queue = [(0, start)]
    
    while queue:
        current_distance, current_node = heapq.heappop(queue)
        
        if current_distance > distances[current_node]:
            continue
        
        for neighbor, weight in graph[current_node].items():
            distance = current_distance + weight
            if distance < distances[neighbor]:
                distances[neighbor] = distance
                heapq.heappush(queue, (distance, neighbor))
    
    return distances

# ๊ทธ๋ž˜ํ”„ ์˜ˆ์‹œ
graph = {
    'A': {'B': 4, 'C': 2},
    'B': {'D': 3, 'E': 1},
    'C': {'B': 1, 'D': 5},
    'D': {'E': 2},
    'E': {}
}

print(dijkstra(graph, 'A'))

๐Ÿ’ก ์žฌ๋Šฅ๋„ท Tip: ๊ธฐํ•˜ํ•™๊ณผ ๊ทธ๋ž˜ํ”„ ์ด๋ก ์€ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ๊ณผ ์ปดํ“จํ„ฐ ๊ทธ๋ž˜ํ”ฝ์Šค ๋ถ„์•ผ์—์„œ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์žฌ๋Šฅ๋„ท์˜ ๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐ•์ขŒ๋ฅผ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ๊ฐœ๋…๋“ค์„ ์‹ค์ œ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ์ ์šฉํ•ด๋ณด๋Š” ๊ฒƒ์€ ์–ด๋–จ๊นŒ์š”? ์ˆ˜ํ•™์  ์ง€์‹์„ ์‹ค์ œ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•ด๋ณด๋ฉด์„œ ๋” ๊นŠ์ด ์žˆ๋Š” ์ดํ•ด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์„ ๊ฑฐ์˜ˆ์š”!

์ด์ฒ˜๋Ÿผ ๊ธฐํ•˜ํ•™๊ณผ ๊ทธ๋ž˜ํ”„ ์ด๋ก ์˜ ๊ฐœ๋…๋“ค์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ํŠนํžˆ ๊ฒŒ์ž„๊ณผ ๊ทธ๋ž˜ํ”ฝ ๊ด€๋ จ ๋ถ„์•ผ์—์„œ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ์ดˆ ์ˆ˜ํ•™์˜ ์ดํ•ด๋Š” ์ด๋Ÿฌํ•œ ๋ณต์žกํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ๐Ÿ“๐ŸŽฎ

6. ํ™•๋ฅ ๊ณผ ํ†ต๊ณ„: ๋ฐ์ดํ„ฐ ๋ถ„์„๊ณผ ๋จธ์‹ ๋Ÿฌ๋‹์˜ ๊ธฐ์ดˆ ๐Ÿ“Š

ํ™•๋ฅ ๊ณผ ํ†ต๊ณ„๋Š” ํ˜„๋Œ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ํŠนํžˆ ๋ฐ์ดํ„ฐ ๊ณผํ•™๊ณผ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ถ„์•ผ์—์„œ ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ถ„์•ผ์˜ ๊ธฐ์ดˆ์ ์ธ ์ˆ˜ํ•™ ๊ฐœ๋…๋“ค์ด ์–ด๋–ป๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์ ์šฉ๋˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

6.1 ๊ธฐ์ˆ  ํ†ต๊ณ„

๋ฐ์ดํ„ฐ์˜ ๊ธฐ๋ณธ์ ์ธ ํŠน์„ฑ์„ ์š”์•ฝํ•˜๋Š” ๊ธฐ์ˆ  ํ†ต๊ณ„๋Š” ๋ฐ์ดํ„ฐ ๋ถ„์„์˜ ์ฒซ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.


import numpy as np

data = [1, 2, 2, 3, 4, 5, 5, 6, 6, 6, 7, 8, 9]

mean = np.mean(data)
median = np.median(data)
std_dev = np.std(data)

print(f"ํ‰๊ท : {mean:.2f}")
print(f"์ค‘์•™๊ฐ’: {median:.2f}")
print(f"ํ‘œ์ค€ํŽธ์ฐจ: {std_dev:.2f}")

6.2 ํ™•๋ฅ  ๋ถ„ํฌ

ํ™•๋ฅ  ๋ถ„ํฌ๋Š” ๋ฐ์ดํ„ฐ์˜ ํŒจํ„ด์„ ์ดํ•ดํ•˜๊ณ  ์˜ˆ์ธกํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ •๊ทœ ๋ถ„ํฌ๋Š” ๋งŽ์€ ์ž์—ฐ ํ˜„์ƒ๊ณผ ์‚ฌํšŒ ํ˜„์ƒ์„ ๋ชจ๋ธ๋งํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.


import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

# ์ •๊ทœ ๋ถ„ํฌ ์ƒ์„ฑ
mu, sigma = 0, 0.1
s = np.random.normal(mu, sigma, 1000)

# ํžˆ์Šคํ† ๊ทธ๋žจ ๊ทธ๋ฆฌ๊ธฐ
count, bins, ignored = plt.hist(s, 30, density=True)

# ์ด๋ก ์ ์ธ ์ •๊ทœ ๋ถ„ํฌ ๊ณก์„  ๊ทธ๋ฆฌ๊ธฐ
plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) *
         np.exp( - (bins - mu)**2 / (2 * sigma**2) ),
         linewidth=2, color='r')
plt.title("์ •๊ทœ ๋ถ„ํฌ")
plt.show()
์ •๊ทœ ๋ถ„ํฌ ๊ทธ๋ž˜ํ”„ ฮผ x y ์ •๊ทœ ๋ถ„ํฌ

6.3 ๊ฐ€์„ค ๊ฒ€์ •

๊ฐ€์„ค ๊ฒ€์ •์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํŠน์ • ์ฃผ์žฅ์˜ ํƒ€๋‹น์„ฑ์„ ํ‰๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, t-๊ฒ€์ •์„ ํ†ตํ•ด ๋‘ ๊ทธ๋ฃน ๊ฐ„์˜ ํ‰๊ท  ์ฐจ์ด๊ฐ€ ํ†ต๊ณ„์ ์œผ๋กœ ์œ ์˜๋ฏธํ•œ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


from scipy import stats

# ๋‘ ๊ทธ๋ฃน์˜ ๋ฐ์ดํ„ฐ
group1 = [5, 7, 5, 3, 5, 3, 3, 9]
group2 = [8, 1, 4, 6, 6, 4, 1, 2]

# ๋…๋ฆฝํ‘œ๋ณธ t-๊ฒ€์ • ์ˆ˜ํ–‰
t_statistic, p_value = stats.ttest_ind(group1, group2)

print(f"t-ํ†ต๊ณ„๋Ÿ‰: {t_statistic:.4f}")
print(f"p-๊ฐ’: {p_value:.4f}")

if p_value < 0.05:
    print("๋‘ ๊ทธ๋ฃน ๊ฐ„ ํ‰๊ท  ์ฐจ์ด๊ฐ€ ํ†ต๊ณ„์ ์œผ๋กœ ์œ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.")
else:
    print("๋‘ ๊ทธ๋ฃน ๊ฐ„ ํ‰๊ท  ์ฐจ์ด๊ฐ€ ํ†ต๊ณ„์ ์œผ๋กœ ์œ ์˜๋ฏธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.")

6.4 ํšŒ๊ท€ ๋ถ„์„

ํšŒ๊ท€ ๋ถ„์„์€ ๋ณ€์ˆ˜ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋ชจ๋ธ๋งํ•˜๋Š” ํ†ต๊ณ„์  ๋ฐฉ๋ฒ•์œผ๋กœ, ๋จธ์‹ ๋Ÿฌ๋‹์˜ ๊ธฐ์ดˆ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.


import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt

# ๋ฐ์ดํ„ฐ ์ƒ์„ฑ
X = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)
y = np.array([2, 4, 5, 4, 5])

# ์„ ํ˜• ํšŒ๊ท€ ๋ชจ๋ธ ํ•™์Šต
model = LinearRegression()
model.fit(X, y)

# ์˜ˆ์ธก
y_pred = model.predict(X)

# ๊ฒฐ๊ณผ ์ถœ๋ ฅ
print(f"๊ธฐ์šธ๊ธฐ: {model.coef_[0]:.2f}")
print(f"y์ ˆํŽธ: {model.intercept_:.2f}")

# ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐ
plt.scatter(X, y, color='blue')
plt.plot(X, y_pred, color='red')
plt.title("์„ ํ˜• ํšŒ๊ท€")
plt.xlabel("X")
plt.ylabel("y")
plt.show()

๐ŸŒŸ ์žฌ๋Šฅ๋„ท Tip: ํ™•๋ฅ ๊ณผ ํ†ต๊ณ„๋Š” ๋ฐ์ดํ„ฐ ๊ณผํ•™๊ณผ ๋จธ์‹ ๋Ÿฌ๋‹์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. ์žฌ๋Šฅ๋„ท์˜ ๋ฐ์ดํ„ฐ ๋ถ„์„ ๊ฐ•์ขŒ๋ฅผ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ๊ฐœ๋…๋“ค์„ ์‹ค์ œ ๋ฐ์ดํ„ฐ์…‹์— ์ ์šฉํ•ด๋ณด๋Š” ๊ฒƒ์€ ์–ด๋–จ๊นŒ์š”? ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋ฉด์„œ ํ†ต๊ณ„์  ๊ฐœ๋…์„ ์ ์šฉํ•ด๋ณด๋ฉด, ์ด๋ก ๊ณผ ์‹ค์ œ์˜ ์—ฐ๊ฒฐ๊ณ ๋ฆฌ๋ฅผ ๋” ์ž˜ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์„ ๊ฑฐ์˜ˆ์š”!

์ด์ฒ˜๋Ÿผ ํ™•๋ฅ ๊ณผ ํ†ต๊ณ„์˜ ๊ฐœ๋…๋“ค์€ ๋ฐ์ดํ„ฐ ๋ถ„์„๊ณผ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ถ„์•ผ์—์„œ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ์ดˆ ์ˆ˜ํ•™์˜ ์ดํ•ด๋Š” ์ด๋Ÿฌํ•œ ๋ณต์žกํ•œ ๋ถ„์„๊ณผ ๋ชจ๋ธ๋ง์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์˜ ์‹œ๋Œ€์— ์ด๋Ÿฌํ•œ ์ง€์‹์€ ๋”์šฑ ์ค‘์š”ํ•ด์ง€๊ณ  ์žˆ์ฃ . ๐Ÿ“Š๐Ÿง 

๊ฒฐ๋ก : ์ˆ˜ํ•™๊ณผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์‹œ๋„ˆ์ง€ ๐ŸŒŸ

์ง€๊ธˆ๊นŒ์ง€ ์šฐ๋ฆฌ๋Š” ๊ธฐ์ดˆ ์ˆ˜ํ•™์˜ ์—ฌ๋Ÿฌ ๊ฐœ๋…๋“ค์ด ์–ด๋–ป๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ์—ฐ๊ฒฐ๋˜๋Š”์ง€ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ˆ˜์™€ ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ๋…ผ๋ฆฌ์™€ ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ, ๊ธฐํ•˜ํ•™, ๊ทธ๋ฆฌ๊ณ  ํ™•๋ฅ ๊ณผ ํ†ต๊ณ„๊นŒ์ง€, ์ด ๋ชจ๋“  ์ˆ˜ํ•™์  ๊ฐœ๋…๋“ค์ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋‹ค์–‘ํ•œ ์˜์—ญ์—์„œ ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์—ฐ๊ฒฐ๊ณ ๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ๋‹จ์ˆœํžˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ ์ด์ƒ์˜ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜ํ•™์  ์‚ฌ๊ณ ๋Š” ๋ฌธ์ œ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ๋ถ„์„ํ•˜๊ณ  ํšจ์œจ์ ์ธ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ๋Š” ๋Šฅ๋ ฅ์„ ํ‚ค์›Œ์ค๋‹ˆ๋‹ค. ์ด๋Š” ๋ณต์žกํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๊ณ„ํ•˜๊ฑฐ๋‚˜ ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•  ๋•Œ ํŠนํžˆ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ, ์ˆ˜ํ•™์  ๊ธฐ์ดˆ๋Š” ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐœ๋…์„ ํ•™์Šตํ•˜๋Š” ๋ฐ๋„ ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋‚˜ ๋ณ‘๋ ฌ ์ปดํ“จํŒ…๊ณผ ๊ฐ™์€ ๊ณ ๊ธ‰ ์ฃผ์ œ๋“ค๋„ ๊ฒฐ๊ตญ์€ ์ˆ˜ํ•™์  ๊ฐœ๋…์— ๊ธฐ๋ฐ˜์„ ๋‘๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆ˜ํ•™ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹œ๋„ˆ์ง€ ํ˜์‹ ์ ์ธ ์†”๋ฃจ์…˜ ์ˆ˜ํ•™๊ณผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์‹œ๋„ˆ์ง€

๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์ด ๋›ฐ์–ด๋‚œ ์ˆ˜ํ•™์ž๋งŒ์ด ์ข‹์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ์˜คํžˆ๋ ค ๊ธฐ์ดˆ์ ์ธ ์ˆ˜ํ•™์  ๊ฐœ๋…์„ ์ดํ•ดํ•˜๊ณ , ์ด๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜ํ•™์„ ์–ด๋ ค์›Œํ•˜๋Š” ๋ถ„๋“ค๋„ ๊ฑฑ์ •ํ•˜์ง€ ๋งˆ์„ธ์š”. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ†ตํ•ด ์ˆ˜ํ•™์„ ์ƒˆ๋กœ์šด ๊ด€์ ์—์„œ ๋ฐ”๋ผ๋ณผ ์ˆ˜ ์žˆ๊ณ , ์ด๋Š” ์˜คํžˆ๋ ค ์ˆ˜ํ•™์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ๊นŠ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ก ์žฌ๋Šฅ๋„ท Tip: ์ˆ˜ํ•™๊ณผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•จ๊ป˜ ํ•™์Šตํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ต๊ฒŒ ๋Š๊ปด์ง„๋‹ค๋ฉด, ์žฌ๋Šฅ๋„ท์˜ '์ˆ˜ํ•™์œผ๋กœ ์ดํ•ดํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ' ๊ฐ•์ขŒ๋ฅผ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ•์ขŒ๋Š” ๊ธฐ์ดˆ ์ˆ˜ํ•™ ๊ฐœ๋…๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋‹จ๊ณ„๋ณ„๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ์ฝ”๋”ฉ ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ์ˆ˜ํ•™ ๊ฐœ๋…์„ ํ•™์Šตํ•˜๋ฉด์„œ, ๋‘ ๋ถ„์•ผ์˜ ์‹œ๋„ˆ์ง€๋ฅผ ์ง์ ‘ ๊ฒฝํ—˜ํ•ด๋ณผ ์ˆ˜ ์žˆ์„ ๊ฑฐ์˜ˆ์š”!

๊ฒฐ๋ก ์ ์œผ๋กœ, ์ˆ˜ํ•™๊ณผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์„œ๋กœ๋ฅผ ๋ณด์™„ํ•˜๊ณ  ๊ฐ•ํ™”ํ•˜๋Š” ๊ด€๊ณ„์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜ํ•™์  ์‚ฌ๊ณ ๋Š” ๋” ํšจ์œจ์ ์ด๊ณ  ์šฐ์•„ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ๋ฉฐ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์ˆ˜ํ•™์  ๊ฐœ๋…์„ ์‹ค์ œ๋กœ ์ ์šฉํ•˜๊ณ  ์‹œ๊ฐํ™”ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด ๋‘ ๋ถ„์•ผ์˜ ์‹œ๋„ˆ์ง€๋ฅผ ์ดํ•ดํ•˜๊ณ  ํ™œ์šฉํ•  ๋•Œ, ์šฐ๋ฆฌ๋Š” ๋” ํ˜์‹ ์ ์ด๊ณ  ํšจ๊ณผ์ ์ธ ์†”๋ฃจ์…˜์„ ๋งŒ๋“ค์–ด๋‚ผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ฌ์ •์— ์ˆ˜ํ•™์ด ๋“ ๋“ ํ•œ ๋™๋ฐ˜์ž๊ฐ€ ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ํ•จ๊ป˜ ์„ฑ์žฅํ•˜๊ณ  ๋ฐœ์ „ํ•˜๋Š” ์—ฌ์ •์„ ์ฆ๊ธฐ์„ธ์š”! ๐Ÿš€๐Ÿงฎ๐Ÿ’ป