ํ•™์Šต ์ž๋ฃŒ

๐Ÿ”ด ํ›„๊ธฐ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณด๋‚ด๋ฉด ์ด๋ฆ„์ด ๋‚˜๊ฐ„๋‹ค


Article

์•ž ํŽธ์—์„œ ์ด๋ ฅ์„ ๊บผ๋ƒˆ๋‹ค. ์ด์ œ ๊ทธ๊ฑธ ๋ชจ๋ธ์—๊ฒŒ ์ค„ ์ฐจ๋ก€์ธ๋ฐ, ์ฃผ๊ธฐ ์ „์— ๊ฑฐ์ณ์•ผ ํ•  ๊ฒƒ์ด ์žˆ๋‹ค.

๊ธ€์ž๊ฐ€ ์–ด๋””๊นŒ์ง€ ๊ฐ€๋‚˜
  1. ์šฐ๋ฆฌ DB์ด๋ฆ„ ยท ์ „ํ™” ยท ํ›„๊ธฐ
  2. ํ”„๋กฌํ”„ํŠธ์—ฌ๊ธฐ์— ๋ถ™์ธ๋‹ค
  3. ๋‚ด ๋…ธํŠธ๋ถ ์•ˆ6ํŽธ โ€” ์—ฌ๊ธฐ์„œ ๋ฉˆ์ถ˜๋‹ค
  4. ๋ฐ”๊นฅ ํšŒ์‚ฌ ์„œ๋ฒ„7ํŽธ โ€” ํ†ต์ œ ๋ฐ–๊นŒ์ง€ ๊ฐ„๋‹ค
6ํŽธ๋Œ€๋กœ ๋‚ด ๋…ธํŠธ๋ถ์—์„œ ๋Œ๋ฆฌ๋ฉด ์„ธ ๋ฒˆ์งธ ์นธ์—์„œ ๋ฉˆ์ถ˜๋‹ค. 7ํŽธ์˜ ์ƒ์šฉ API ๋กœ ๊ฐˆ์•„ํƒ”๋‹ค๋ฉด ๋„ค ๋ฒˆ์งธ๊นŒ์ง€ ๊ฐ„๋‹ค.

1. ๊ทธ๋Œ€๋กœ ๋ณด๋‚ด๋ฉด ๋ฌด์—‡์ด ๋‚˜๊ฐ€๋‚˜

๋จผ์ € ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋งŒ๋“ค์–ด์„œ ํ™”๋ฉด์— ์ฐ์–ด๋ณธ๋‹ค. ๋ณด๋‚ด์ง€๋Š” ์•Š๋Š”๋‹ค. ๋ณด๋‚ด๊ธฐ ์ „์— ๋ˆˆ์œผ๋กœ ๋ณด๋Š” ๊ฒƒ์ด ์ˆœ์„œ๋‹ค.

05_prompt_peek.py
import sqlite3

con = sqlite3.connect("shop.db")
cur = con.cursor()

customer = cur.execute("""
    SELECT name, age, gender, skin_type, phone, email, city
    FROM customers WHERE customer_id = 'C007'
""").fetchone()

history = cur.execute("""
    SELECT products.name, products.price, purchases.rating, purchases.review
    FROM purchases
    JOIN products ON purchases.product_id = products.product_id
    WHERE purchases.customer_id = 'C007' AND purchases.is_holdout = 0
""").fetchall()

prompt = f"""์•„๋ž˜ ๊ณ ๊ฐ์—๊ฒŒ ์–ด์šธ๋ฆด ํ™”์žฅํ’ˆ์„ ์ถ”์ฒœํ•ด๋ผ.

[๊ณ ๊ฐ]
{customer}

[๊ตฌ๋งค ์ด๋ ฅ]
"""
for name, price, rating, review in history:
    prompt += f"- {name} ({price}์›, ๋ณ„์  {rating}) : {review}\n"

print(prompt)
ํ„ฐ๋ฏธ๋„ โ€” ๋ฐ–์œผ๋กœ ๋‚˜๊ฐˆ ๊ธ€์ž๋“ค
  • ์•„๋ž˜ ๊ณ ๊ฐ์—๊ฒŒ ์–ด์šธ๋ฆด ํ™”์žฅํ’ˆ์„ ์ถ”์ฒœํ•ด๋ผ.
  • [๊ณ ๊ฐ]
  • ('ํ•œ๋‹ค์€', 41, 'F', '๊ฑด์„ฑ', '010-3355-1847', 'daeun52@example.com', '์ˆ˜์›')
  • [๊ตฌ๋งค ์ด๋ ฅ]
  • - ๋ณ‘ํ’€ ๋งํด ํด๋ Œ์ง•์˜ค์ผ (28100์›, ๋ณ„์  3) : ๋ฌด๋‚œํ•ด์š”. ๊ฑด์„ฑ์ธ๋ฐ ์ž๊ทน ์—†์ด ์ž˜ ์ผ์–ด์š”.
  • - ํžˆ์•Œ๋ฃจ๋ก ์‚ฐ ํƒ„๋ ฅ ํด๋ Œ์ง•์˜ค์ผ (25000์›, ๋ณ„์  4) : ์žฌ๊ตฌ๋งค์ž…๋‹ˆ๋‹ค. ๊ถ๊ธˆํ•˜์‹  ๋ถ„์€ 010-3355-1847์œผ๋กœ ๋ฌธ์ž์ฃผ์„ธ์š”.
  • - ์Œ€๊ฒจ ํƒ„๋ ฅ ์„ ํฌ๋ฆผ (19500์›, ๋ณ„์  5) : ๋‘ ํ†ต์งธ ์“ฐ๋Š” ์ค‘์ด์—์š”. ํ–ฅ์ด ์„ธ์ง€ ์•Š์•„์„œ ์ข‹์•„์š”.

2. ์ฒซ ์ฒ˜๋ฐฉ โ€” ์ •๊ทœ์‹์œผ๋กœ ์ง€์šด๋‹ค

์ „ํ™”๋ฒˆํ˜ธ๋Š” ๋ชจ์–‘์ด ์ •ํ•ด์ ธ ์žˆ๋‹ค. ์ •๊ทœ์‹์œผ๋กœ ์ฐพ์•„ ์ง€์šฐ๋ฉด ๋˜๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ์ œ์ผ ๋จผ์ € ๋“ ๋‹ค. ๋งž๋Š” ์ƒ๊ฐ์ด๋‹ค.

14_mask.py
# re ๋Š” ์ •๊ทœ์‹ ๋„๊ตฌ๋‹ค. ์ •๊ทœ์‹์€ "์ด๋Ÿฐ ๋ชจ์–‘์˜ ๊ธ€์ž๋ฅผ ์ฐพ์•„๋ผ" ๋ฅผ ์ ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
# ํŒŒ์ด์ฌ์— ๊ธฐ๋ณธ์œผ๋กœ ๋“ค์–ด ์žˆ๋‹ค
import re
import sqlite3

con = sqlite3.connect("shop.db")
cur = con.cursor()

# ํ›„๊ธฐ๋งŒ 1,500๊ฐœ ๊บผ๋‚ธ๋‹ค. ๊ฒฐ๊ณผ๋Š” ('๋ฌด๋‚œํ•ด์š”...',) ์ฒ˜๋Ÿผ ๋ฌถ์Œ์ด๋ผ r[0] ์œผ๋กœ ๊ธ€์ž๋งŒ ๊บผ๋‚ธ๋‹ค
reviews = [r[0] for r in cur.execute("SELECT review FROM purchases").fetchall()]

# compile ์€ ์ฐพ์„ ๋ชจ์–‘์„ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘๋Š” ๊ฒƒ์ด๋‹ค. 1,500๋ฒˆ ์“ธ ๊ฑฐ๋ผ ๋ฏธ๋ฆฌ ๋งŒ๋“ค๋ฉด ๋น ๋ฅด๋‹ค.
# ์•ž์˜ r ์€ "์—ญ์Šฌ๋ž˜์‹œ๋ฅผ ๊ทธ๋Œ€๋กœ ์ฝ์–ด๋ผ" ๋Š” ํ‘œ์‹œ๋‹ค. ์ด๊ฒŒ ์—†์œผ๋ฉด \d ๊ฐ€ ๋‹ค๋ฅธ ๋œป์ด ๋œ๋‹ค.
#   \d      ์ˆซ์ž ํ•˜๋‚˜ (digit)
#   {4}     ๋ฐ”๋กœ ์•ž์˜ ๊ฒƒ์ด ๋„ค ๋ฒˆ
#   010-    ์ด ๊ธ€์ž ๊ทธ๋Œ€๋กœ
# ํ•ฉ์น˜๋ฉด "010-๋„ค์ž๋ฆฌ-๋„ค์ž๋ฆฌ" ๊ฐ€ ๋œ๋‹ค
phone = re.compile(r"010-\d{4}-\d{4}")

# search ๋Š” "์ด ๊ธ€์— ๊ทธ ๋ชจ์–‘์ด ์žˆ๋‚˜" ๋ฅผ ๋ณธ๋‹ค. ์žˆ์œผ๋ฉด ์ฐพ์€ ๊ฒƒ์„, ์—†์œผ๋ฉด None ์„ ์ค€๋‹ค.
# sum ์€ ๋”ํ•˜๋Š” ํ•จ์ˆ˜์ธ๋ฐ, ์—ฌ๊ธฐ์„œ๋Š” ์กฐ๊ฑด์— ๋งž๋Š” ๊ฒƒ๋งˆ๋‹ค 1์„ ์„ธ๋Š” ๋ฐ ์ผ๋‹ค
found = sum(1 for t in reviews if phone.search(t))
print(f"ํ›„๊ธฐ {len(reviews)}๊ฑด ์ค‘ ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ์žกํžŒ ๊ฒƒ {found}๊ฑด")

# sub ๋Š” ์ฐพ์€ ์ž๋ฆฌ๋ฅผ ๋‹ค๋ฅธ ๊ธ€์ž๋กœ ๋ฐ”๊พผ๋‹ค (substitute). ์›๋ณธ์€ ์•ˆ ๋ฐ”๋€Œ๊ณ  ๋ฐ”๋€ ์‚ฌ๋ณธ์ด ๋‚˜์˜จ๋‹ค
print(phone.sub("[์ „ํ™”๋ฒˆํ˜ธ]", reviews[3]))
๋‚ฏ์„  ์ด๋ฆ„ ํ’€์ด
์ด๋ฆ„๋ฌด์Šจ ๋œป์ธ๊ฐ€์™œ ์—ฌ๊ธฐ ๋‚˜์˜ค๋‚˜
re์ •๊ทœ์‹ ๋„๊ตฌใ€Œ์ด๋Ÿฐ ๋ชจ์–‘์˜ ๊ธ€์žใ€๋ฅผ ์ฐพ์œผ๋ ค๊ณ 
r ์ ‘๋‘์–ด์—ญ์Šฌ๋ž˜์‹œ๋ฅผ ๊ทธ๋Œ€๋กœ ์ฝ์–ด๋ผ์•ˆ ๋ถ™์ด๋ฉด ์ˆซ์ž ํ‘œ์‹œ๊ฐ€ ๋‹ค๋ฅธ ๋œป์ด ๋œ๋‹ค
์—ญ์Šฌ๋ž˜์‹œ + d์ˆซ์ž ํ•˜๋‚˜๋’ค์— {4} ๋ฅผ ๋ถ™์ด๋ฉด ๋„ค ์ž๋ฆฌ
compile์ฐพ์„ ๋ชจ์–‘์„ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘”๋‹ค1,500๋ฒˆ ์“ธ ๊ฑฐ๋ผ ๋ฏธ๋ฆฌ
search์žˆ๋‚˜ ์—†๋‚˜ ๋ณธ๋‹ค์žˆ์œผ๋ฉด ์ฐพ์€ ์ž๋ฆฌ, ์—†์œผ๋ฉด None
sub์ฐพ์€ ์ž๋ฆฌ๋ฅผ ๋ฐ”๊พผ๋‹ค์ง€์šฐ๊ธฐ๊ฐ€ ๊ณง ๋ฐ”๊พธ๊ธฐ๋‹ค
ํ„ฐ๋ฏธ๋„
  • ํ›„๊ธฐ 1500๊ฑด ์ค‘ ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ์žกํžŒ ๊ฒƒ 42๊ฑด
  • ๊ฐ€๊ฒฉ ์ƒ๊ฐํ•˜๋ฉด ์ด ์ •๋„๋Š” ํ•˜๋Š” ๊ฒƒ ๊ฐ™์•„์š”. ๊ถ๊ธˆํ•˜์‹  ๋ถ„์€ [์ „ํ™”๋ฒˆํ˜ธ]์œผ๋กœ ๋ฌธ์ž์ฃผ์„ธ์š”.

์ž˜ ๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ 42๊ฑด์ด ๋งž๋‚˜?

3. ๐Ÿ”ด 110๊ฑด์„ ๋†“์ณค๋‹ค

์‚ฌ๋žŒ์€ ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ํ•œ ๊ฐ€์ง€ ๋ชจ์–‘์œผ๋กœ๋งŒ ์“ฐ์ง€ ์•Š๋Š”๋‹ค. ํ›„๊ธฐ๋ฅผ ์ง์ ‘ ๋’ค์ ธ๋ณธ๋‹ค.

print(cur.execute("SELECT COUNT(*) FROM purchases WHERE review LIKE '%010%'").fetchone()[0])
ํ„ฐ๋ฏธ๋„
  • 152
๊ฐ™์€ ๋ฒˆํ˜ธ, ๋‹ค๋ฅธ ๋ชจ์–‘

์žกํžŒ ๊ฒƒ

42๊ฑด

  • 010-7600-2955
  • ํ•˜์ดํ”ˆ์ด ์žˆ๋Š” ๊ฒƒ๋งŒ

๋น ์ ธ๋‚˜๊ฐ„ ๊ฒƒ

110๊ฑด

  • 010 8202 9049 โ€” ๋„์–ด์“ฐ๊ธฐ
  • 01082029049 โ€” ๋‹ค ๋ถ™์ž„
  • ์‚ฌ๋žŒ์€ ์ด๋ ‡๊ฒŒ๋„ ์“ด๋‹ค
ใ€Œ์žฌ๊ณ  ๋ฌธ์˜๋Š” 010 8202 9049 ๋กœ ๋ถ€ํƒ๋“œ๋ ค์š”ใ€ โ€” ์‹ค์ œ๋กœ ํ›„๊ธฐ์— ์žˆ๋˜ ๋ฌธ์žฅ์ด๋‹ค.

์ •๊ทœ์‹์„ ๋„“ํžŒ๋‹ค.

phone = re.compile(r"01[016789][-\s]?\d{3,4}[-\s]?\d{4}")
#                   ^^^^^^^^^  ๋Œ€๊ด„ํ˜ธ = "์ด ์ค‘ ์•„๋ฌด๊ฑฐ๋‚˜ ํ•˜๋‚˜". 010 ๋ง๊ณ  011ยท016 ๋„ ์žˆ๋‹ค
#                            ^^^^^  \s = ๋นˆ์นธ, ? = "์žˆ์–ด๋„ ๋˜๊ณ  ์—†์–ด๋„ ๋œ๋‹ค"
#                                     ^^^^^  {3,4} = "์„ธ ๊ฐœ ๋˜๋Š” ๋„ค ๊ฐœ". ์˜›๋‚  ๋ฒˆํ˜ธ๋Š” ๊ฐ€์šด๋ฐ๊ฐ€ ์„ธ ์ž๋ฆฌ๋‹ค

print(sum(1 for t in reviews if phone.search(t)))
ํ„ฐ๋ฏธ๋„
  • 152

์ด๋ฉ”์ผ๋„ ๊ฐ™์ด ์ฒ˜๋ฆฌํ•œ๋‹ค.

email = re.compile(r"[\w.]+@[\w.]+\.\w+")
print(sum(1 for t in reviews if email.search(t)))    # 46

์ด๋ฒˆ ํŽธ์— ๋‚˜์˜จ ๊ฒƒ

์ •๋ฆฌ
์žฐ ๊ฒƒ ยท ์•ˆ ๊ฒƒ์ˆซ์ž์™€ ๋‚ด์šฉ
ํ›„๊ธฐ์— ์ „ํ™”๋ฒˆํ˜ธ152๊ฑด / 1,500๊ฑด
์ฒซ ์ •๊ทœ์‹42๊ฑด๋งŒ ์žก์•˜๋‹ค. 110๊ฑด์„ ๋†“์ณค๋‹ค
๋†“์นœ ์ด์œ ๋„์–ด์“ฐ๊ธฐ ยท ๋ถ™์—ฌ์“ฐ๊ธฐ ยท ์˜›๋‚  ๋ฒˆํ˜ธ
๋„“ํžŒ ์ •๊ทœ์‹152๊ฑด ์ „๋ถ€
์ด๋ฉ”์ผ46๊ฑด
re.compile ยท search ยท sub๋ชจ์–‘์„ ๋งŒ๋“ค๊ณ  ยท ์ฐพ๊ณ  ยท ๋ฐ”๊พผ๋‹ค
๋ฐฐ์šด ๊ฒƒ์ง€์šด ์ˆ˜์™€ ์›๋ž˜ ์ˆ˜๋ฅผ ๋‚˜๋ž€ํžˆ ๋ด์•ผ ๋†“์นœ ๊ฑธ ์•ˆ๋‹ค

๋ฏธ์…˜

๋ฏธ์…˜
  1. 01

    [ํ•„์ˆ˜] ๋‚ด ํ”„๋กฌํ”„ํŠธ์—์„œ ๋ฒˆํ˜ธ๋ฅผ ์ง€์šด๋‹ค

    mission_pii_1.py. ์•ž ํŽธ๋“ค์—์„œ ๋งŒ๋“  ๊ณ ๊ฐ ํ”„๋กฌํ”„ํŠธ์— ๋„“ํžŒ ์ •๊ทœ์‹์„ ๊ฑธ์–ด ์ „๊ณผ ํ›„๋ฅผ ๋‚˜๋ž€ํžˆ ์ฐ๋Š”๋‹ค.

  2. 02

    [์‘์šฉ] ์นดํ†ก ์•„์ด๋””์™€ ์‚ฌ๋Š” ๊ณณ์„ ์„ธ์–ด๋ณธ๋‹ค

    mission_pii_2.py. ํ›„๊ธฐ์— ์นดํ†ก ์•„์ด๋””๊ฐ€ 49๊ฑด, ์‚ฌ๋Š” ๊ณณ์ด 51๊ฑด ๋“ค์–ด ์žˆ๋‹ค. ์ด๊ฑด ๊ฐœ์ธ์ •๋ณด์ธ๊ฐ€ ์•„๋‹Œ๊ฐ€. ์žก์„ ์ˆ˜ ์žˆ๋Š”์ง€ ์‹œ๋„ํ•ด๋ณด๊ณ  ํŒ๋‹จ๊ณผ ์ด์œ ๋ฅผ ํ•œ ์ค„๋กœ ์ ๋Š”๋‹ค.

  3. 03

    [๋„์ „] ๋†“์นœ ๊ฒƒ์„ ์Šค์Šค๋กœ ์ฐพ์•„๋ณธ๋‹ค

    mission_pii_3.py. ์ •๊ทœ์‹์œผ๋กœ ์ง€์šด ๋’ค, ๋‚จ์€ ๊ธ€์— ์ˆซ์ž๊ฐ€ ๋ช‡ ๊ฐœ๋‚˜ ๋‚จ์•„ ์žˆ๋Š”์ง€ ์„ผ๋‹ค. ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ์•„๋‹Œ ์ˆซ์ž์™€ ์–ด๋–ป๊ฒŒ ๊ตฌ๋ถ„ํ• ๊นŒ.

[์‘์šฉ] ์นดํ†ก ์•„์ด๋””๋Š” ๊ฐœ์ธ์ •๋ณด์ธ๊ฐ€์ถฉ๋ถ„ํžˆ ๊ณ ๋ฏผํ•ด๋ณธ ๋’ค ๊ผญ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์—ด์–ด๋ณด์„ธ์š”

์ •๋‹ต์ด ํ•˜๋‚˜๊ฐ€ ์•„๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด ๋ฏธ์…˜์„ ๋ƒˆ๋‹ค.

์นดํ†ก ์•„์ด๋””๋Š” ๊ทธ๊ฒƒ๋งŒ์œผ๋กœ ์‚ฌ๋žŒ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ์ „ํ™”๋ฒˆํ˜ธ์™€ ์„ฑ๊ฒฉ์ด ๊ฐ™๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋ชจ์–‘์ด ์ •ํ•ด์ ธ ์žˆ์ง€ ์•Š์•„ ์ •๊ทœ์‹์œผ๋กœ๋Š” ๋ชป ์žก๋Š”๋‹ค โ€” ใ€Œdohyun65ใ€์™€ ํ‰๋ฒ”ํ•œ ์˜์–ด ๋‹จ์–ด๋ฅผ ๊ตฌ๋ณ„ํ•  ๋ฐฉ๋ฒ•์ด ์—†๋‹ค.

์‚ฌ๋Š” ๊ณณ์€ ์ข€ ๋‹ค๋ฅด๋‹ค. ใ€Œ์ˆ˜์›ใ€ ํ•˜๋‚˜๋กœ๋Š” ์‚ฌ๋žŒ์ด ์•ˆ ์ฐพ์•„์ง„๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด๋ฆ„ยท๋‚˜์ด์™€ ํ•ฉ์ณ์ง€๋ฉด ์ฐพ์•„์ง„๋‹ค. ํ•˜๋‚˜์”ฉ ๋ณด๋ฉด ๊ดœ์ฐฎ์€๋ฐ ๋ชจ์ด๋ฉด ์œ„ํ—˜ํ•ด์ง€๋Š” ๊ฒƒ์ด ๊ฐœ์ธ์ •๋ณด์˜ ์„ฑ์งˆ์ด๋‹ค.

์‹ค๋ฌด์˜ ๋‹ต์€ ์ด๋ ‡๋‹ค โ€” ์• ๋งคํ•˜๋ฉด ์•ˆ ๋ณด๋‚ธ๋‹ค. ์ถ”์ฒœ์— ์นดํ†ก ์•„์ด๋””๊ฐ€ ํ•„์š”ํ•œ๊ฐ€? ์•„๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๊ทธ ๋ฌธ์žฅ์„ ํ†ต์งธ๋กœ ๋นผ๋„ ์†ํ•ด๊ฐ€ ๊ฑฐ์˜ ์—†๋‹ค.

# ์žก์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋งŒ ์žก๊ณ , ๋ชป ์žก๋Š” ๊ฒƒ์€ ๋ฌธ์žฅ์งธ ๋บ€๋‹ค
kakao_re = re.compile(r"[^.]*์นดํ†ก[^.]*\.")
contact_re = re.compile(r"[^.]*(๋ฌธ์ž|์—ฐ๋ฝ|๊ณต๊ตฌ|๋ฌธ์˜)[^.]*\.")


def drop_sentence(text):
    """์—ฐ๋ฝ์„ ์ฃผ๊ณ ๋ฐ›์ž๋Š” ๋ฌธ์žฅ์€ ํ†ต์งธ๋กœ ๋ฒ„๋ฆฐ๋‹ค. ์ทจํ–ฅ๊ณผ ๋ฌด๊ด€ํ•˜๋‹ค."""
    text = kakao_re.sub("", text)
    text = contact_re.sub("", text)
    return text.strip()


sample = "์žฌ๊ตฌ๋งค์ž…๋‹ˆ๋‹ค. ๋ณตํ•ฉ์„ฑ์ธ๋ฐ ์ž๊ทน ์—†์ด ์ž˜ ์ผ์–ด์š”. ์นดํ†ก ์•„์ด๋”” dohyun65 ์ž…๋‹ˆ๋‹ค."
print(drop_sentence(sample))
# -> ์žฌ๊ตฌ๋งค์ž…๋‹ˆ๋‹ค. ๋ณตํ•ฉ์„ฑ์ธ๋ฐ ์ž๊ทน ์—†์ด ์ž˜ ์ผ์–ด์š”.

๋‚ฑ๋ง์„ ์ง€์šฐ๋Š” ๊ฒƒ๋ณด๋‹ค ๋ฌธ์žฅ์„ ๋ฒ„๋ฆฌ๋Š” ์ชฝ์ด ๋‚˜์„ ๋•Œ๊ฐ€ ์žˆ๋‹ค. ใ€Œ์นดํ†ก ์•„์ด๋”” [์•„์ด๋””] ์ž…๋‹ˆ๋‹คใ€๋Š” ๋‚จ๊ฒจ๋ด์•ผ ์ทจํ–ฅ์— ์•„๋ฌด ๋„์›€์ด ์•ˆ ๋œ๋‹ค.

๊ธฐ์ค€์€ ํ•˜๋‚˜๋‹ค โ€” ์ด ๋ฌธ์žฅ์ด ์ถ”์ฒœ์— ๋„์›€์ด ๋˜๋Š”๊ฐ€. ๋„์›€์ด ์•ˆ ๋˜๋ฉด์„œ ์œ„ํ—˜ํ•˜๊ธฐ๋งŒ ํ•œ ๊ฒƒ์€ ๋ฒ„๋ฆฌ๋Š” ๊ฒŒ ๋งž๋‹ค.

์ •๋ฆฌํ•˜๋ฉด

์ฒซ ์ •๊ทœ์‹์ด 152๊ฑด ์ค‘ 42๊ฑด๋งŒ ์žก์•˜๋‹ค. ๊ทธ๊ฑธ ์•Œ์•„์ฑˆ ๋ฐฉ๋ฒ•์€ ์ •๊ทœ์‹์„ ๋…ธ๋ ค๋ณธ ๊ฒŒ ์•„๋‹ˆ๋ผ ์›๋ณธ์ด ๋ช‡ ๊ฑด์ธ์ง€ ์„ธ์–ด๋ณธ ๊ฒƒ์ด๋‹ค.

์ง€์šด ์ˆ˜์™€ ์›๋ž˜ ์ˆ˜๋ฅผ ๋‚˜๋ž€ํžˆ ์•ˆ ๋ณด๋ฉด ๋†“์นœ ๊ฒƒ์„ ์˜์˜ ๋ชป ๋ณธ๋‹ค. ใ€Œ์ง€์› ์Šต๋‹ˆ๋‹คใ€๋กœ ๋๋‚ด๋ฉด 110๊ฑด์ด ๊ทธ๋Œ€๋กœ ๋‚˜๊ฐ€๋Š”๋ฐ ์•„๋ฌด๋„ ๋ชจ๋ฅธ๋‹ค.

๋„“ํžŒ ์ •๊ทœ์‹์œผ๋กœ 152๊ฑด์„ ๋‹ค ์žก์•˜๊ณ , ์ด๋ฉ”์ผ 46๊ฑด๋„ ๊ฐ™์ด ์ฒ˜๋ฆฌํ–ˆ๋‹ค. ๋ชจ์–‘์ด ์žˆ๋Š” ๊ฒƒ์€ ์ด๋ ‡๊ฒŒ ์žกํžŒ๋‹ค.

๋‹ค์Œ ํŽธ์€ ๋ชจ์–‘์ด ์—†๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ฆ„์€ ์ •๊ทœ์‹์œผ๋กœ ์žก์œผ๋ ค ํ•˜๋ฉด ์—‰๋šฑํ•œ ๊ฒƒ์ด ์žกํžˆ๊ณ , ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง„ ๊ณ ๊ฐํ‘œ๋กœ ๋Œ€์กฐํ•ด๋„ ๊ตฌ๋ฉ์ด ๋‚จ๋Š”๋‹ค. ๊ฑฐ๊ธฐ์„œ ์ˆœ์„œ๋ฅผ ๋’ค์ง‘๊ฒŒ ๋œ๋‹ค.

Share
  • ํŒŒ์ด์ฌ
  • ๊ฐœ์ธ์ •๋ณด
  • ์ •๊ทœ์‹
  • ๋ณด์•ˆ