๋‚ด ์ธ์ƒ์—์„œ ๋ฏฟ์„ ๊ฑด ์˜ค์ง ๋‚˜ ์ž์‹ ๋ฟ!

The only one you can truly trust is yourself.

๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ/Python ํ”„๋กœ๊ทธ๋ž˜๋ฐ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ถˆ๋Ÿ‰ ์‚ฌ์šฉ์ž 2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ

๐ŸŽฎinspirer9 2023. 2. 28. 08:35
728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ ์„ค๋ช…

๊ฐœ๋ฐœํŒ€ ๋‚ด์—์„œ ์ด๋ฒคํŠธ ๊ฐœ๋ฐœ์„ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ๋Š” "๋ฌด์ง€"๋Š” ์ตœ๊ทผ ์ง„ํ–‰๋œ ์นด์นด์˜ค์ด๋ชจํ‹ฐ์ฝ˜ ์ด๋ฒคํŠธ์— ๋น„์ •์ƒ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‹น์ฒจ์„ ์‹œ๋„ํ•œ ์‘๋ชจ์ž๋“ค์„ ๋ฐœ๊ฒฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์‘๋ชจ์ž๋“ค์„ ๋”ฐ๋กœ ๋ชจ์•„ ๋ถˆ๋Ÿ‰ ์‚ฌ์šฉ์ž๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋ชฉ๋ก์„ ๋งŒ๋“ค์–ด์„œ ๋‹น์ฒจ ์ฒ˜๋ฆฌ ์‹œ ์ œ์™ธํ•˜๋„๋ก ์ด๋ฒคํŠธ ๋‹น์ฒจ์ž ๋‹ด๋‹น์ž์ธ "ํ”„๋กœ๋„" ์—๊ฒŒ ์ „๋‹ฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ์„ ์œ„ํ•ด ์‚ฌ์šฉ์ž ์•„์ด๋”” ์ค‘ ์ผ๋ถ€ ๋ฌธ์ž๋ฅผ '*' ๋ฌธ์ž๋กœ ๊ฐ€๋ ค์„œ ์ „๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋ฆฌ๊ณ ์ž ํ•˜๋Š” ๋ฌธ์ž ํ•˜๋‚˜์— '*' ๋ฌธ์ž ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์˜€๊ณ  ์•„์ด๋”” ๋‹น ์ตœ์†Œ ํ•˜๋‚˜ ์ด์ƒ์˜ '*' ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
"๋ฌด์ง€"์™€ "ํ”„๋กœ๋„"๋Š” ๋ถˆ๋Ÿ‰ ์‚ฌ์šฉ์ž ๋ชฉ๋ก์— ๋งคํ•‘๋œ ์‘๋ชจ์ž ์•„์ด๋””๋ฅผ ์ œ์žฌ ์•„์ด๋”” ๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋กœ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ด๋ฒคํŠธ์— ์‘๋ชจํ•œ ์ „์ฒด ์‚ฌ์šฉ์ž ์•„์ด๋”” ๋ชฉ๋ก์ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๋ฉด

์‘๋ชจ์ž ์•„์ด๋””

 
frodo
fradi
crodo
abc123
frodoc

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถˆ๋Ÿ‰ ์‚ฌ์šฉ์ž ์•„์ด๋”” ๋ชฉ๋ก์ด ์ „๋‹ฌ๋œ ๊ฒฝ์šฐ,

๋ถˆ๋Ÿ‰ ์‚ฌ์šฉ์ž

fr*d*
abc1**

๋ถˆ๋Ÿ‰ ์‚ฌ์šฉ์ž์— ๋งคํ•‘๋˜์–ด ๋‹น์ฒจ์—์„œ ์ œ์™ธ๋˜์–ด์•ผ ์•ผ ํ•  ์ œ์žฌ ์•„์ด๋”” ๋ชฉ๋ก์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ œ์žฌ ์•„์ด๋””

frodo
abc123

์ œ์žฌ ์•„์ด๋””

fradi
abc123

์ด๋ฒคํŠธ ์‘๋ชจ์ž ์•„์ด๋”” ๋ชฉ๋ก์ด ๋‹ด๊ธด ๋ฐฐ์—ด user_id์™€ ๋ถˆ๋Ÿ‰ ์‚ฌ์šฉ์ž ์•„์ด๋”” ๋ชฉ๋ก์ด ๋‹ด๊ธด ๋ฐฐ์—ด banned_id๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋‹น์ฒจ์—์„œ ์ œ์™ธ๋˜์–ด์•ผ ํ•  ์ œ์žฌ ์•„์ด๋”” ๋ชฉ๋ก์€ ๋ช‡๊ฐ€์ง€ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ง€ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • user_id ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋Š” 1 ์ด์ƒ 8 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • user_id ๋ฐฐ์—ด ๊ฐ ์›์†Œ๋“ค์˜ ๊ฐ’์€ ๊ธธ์ด๊ฐ€ 1 ์ด์ƒ 8 ์ดํ•˜์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
    • ์‘๋ชจํ•œ ์‚ฌ์šฉ์ž ์•„์ด๋””๋“ค์€ ์„œ๋กœ ์ค‘๋ณต๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • ์‘๋ชจํ•œ ์‚ฌ์šฉ์ž ์•„์ด๋””๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์™€ ์ˆซ์ž๋กœ๋งŒ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • banned_id ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋Š” 1 ์ด์ƒ user_id ๋ฐฐ์—ด์˜ ํฌ๊ธฐ ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • banned_id ๋ฐฐ์—ด ๊ฐ ์›์†Œ๋“ค์˜ ๊ฐ’์€ ๊ธธ์ด๊ฐ€ 1 ์ด์ƒ 8 ์ดํ•˜์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
    • ๋ถˆ๋Ÿ‰ ์‚ฌ์šฉ์ž ์•„์ด๋””๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์™€ ์ˆซ์ž, ๊ฐ€๋ฆฌ๊ธฐ ์œ„ํ•œ ๋ฌธ์ž '*' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋ถˆ๋Ÿ‰ ์‚ฌ์šฉ์ž ์•„์ด๋””๋Š” '*' ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜ ์ด์ƒ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋ถˆ๋Ÿ‰ ์‚ฌ์šฉ์ž ์•„์ด๋”” ํ•˜๋‚˜๋Š” ์‘๋ชจ์ž ์•„์ด๋”” ์ค‘ ํ•˜๋‚˜์— ํ•ด๋‹นํ•˜๊ณ  ๊ฐ™์€ ์‘๋ชจ์ž ์•„์ด๋””๊ฐ€ ์ค‘๋ณตํ•ด์„œ ์ œ์žฌ ์•„์ด๋”” ๋ชฉ๋ก์— ๋“ค์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ๋Š” ์—†์Šต๋‹ˆ๋‹ค.
  • ์ œ์žฌ ์•„์ด๋”” ๋ชฉ๋ก๋“ค์„ ๊ตฌํ–ˆ์„ ๋•Œ ์•„์ด๋””๋“ค์ด ๋‚˜์—ด๋œ ์ˆœ์„œ์™€ ๊ด€๊ณ„์—†์ด ์•„์ด๋”” ๋ชฉ๋ก์˜ ๋‚ด์šฉ์ด ๋™์ผํ•˜๋‹ค๋ฉด ๊ฐ™์€ ๊ฒƒ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ ํ•˜๋‚˜๋กœ ์„ธ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

user_id banned_id result
["frodo", "fradi", "crodo", "abc123", "frodoc"] ["fr*d*", "abc1**"] 2
["frodo", "fradi", "crodo", "abc123", "frodoc"] ["*rodo", "*rodo", "******"] 2
["frodo", "fradi", "crodo", "abc123", "frodoc"] ["fr*d*", "*rodo", "******", "******"] 3

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

๋ฌธ์ œ ์„ค๋ช…๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ œ์žฌ ์•„์ด๋””

frodo
crodo
abc123

์ œ์žฌ ์•„์ด๋””

frodo
crodo
frodoc

์ž…์ถœ๋ ฅ ์˜ˆ #3

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ธ ๊ฐ€์ง€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ œ์žฌ ์•„์ด๋””

frodo
crodo
abc123
frodoc

์ œ์žฌ ์•„์ด๋””

fradi
crodo
abc123
frodoc

์ œ์žฌ ์•„์ด๋””

fradi
frodo
abc123
frodoc

ํ’€์ด

  • ๋ญ˜ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ๋˜๋Š”๊ฑฐ์•ผ?
  • ์ผ๋‹จ ์ •๊ทœ ํ‘œํ˜„์‹์œผ๋กœ id๋ฅผ ๊ณจ๋ผ๋‚ด๊ณ ,
  • ์ œ์žฌ ๋ชฉ๋ก ์ˆ˜ ๋งŒํผ id๋ฅผ ๊ณจ๋ผ์•ผ ํ•˜๋Š”๋ฐ... ๋ญ์ง€ ๊นŠ์ด ํƒ์ƒ‰์ธ๊ฐ€?
  • ์ง„์งœ ๊ฒฝ์šฐ์˜ ์ˆ˜ ์‹ซ๋‹ค. ๊ท€์ฐฎ์•„ ใ… .ใ… 
import re
from itertools import permutations

def solution(user_id, banned_id):
    answer = 0
    banned_id_list = []
    
    for ban_id in banned_id:
        b_id = ban_id.replace('*','.')
        p = re.compile(b_id)
        _tmp = set()
        for u_id in user_id:
            z = p.findall(u_id)
            if len(z) != 0: _tmp.add(z[0])
        banned_id_list.append(list(_tmp))
    
    notice = []
    Comb = permutations(user_id,len(banned_id_list))
    for i, users in enumerate(Comb):
        _true = 1
        _tmp = []
        for j, user in enumerate(users):
            if user not in banned_id_list[j]:
                _true = 0
                break
            else:
                _tmp.append(user)
        if _true == 1:
            _tmp.sort()
            if _tmp not in notice:
                notice.append(_tmp)
                
    return len(notice)
  • ์ƒˆ๋ฒฝ ์‚ฝ์งˆ์˜ ํ”์  ใ…‹
์ •ํ™•์„ฑ  ํ…Œ์ŠคํŠธ
ํ…Œ์ŠคํŠธ 1 ใ€‰	ํ†ต๊ณผ (0.05ms, 10.3MB)
ํ…Œ์ŠคํŠธ 2 ใ€‰	ํ†ต๊ณผ (0.37ms, 10.2MB)
ํ…Œ์ŠคํŠธ 3 ใ€‰	ํ†ต๊ณผ (0.19ms, 10.1MB)
ํ…Œ์ŠคํŠธ 4 ใ€‰	ํ†ต๊ณผ (0.18ms, 10.2MB)
ํ…Œ์ŠคํŠธ 5 ใ€‰	ํ†ต๊ณผ (65.05ms, 10.2MB)
ํ…Œ์ŠคํŠธ 6 ใ€‰	ํ†ต๊ณผ (11.74ms, 10.2MB)
ํ…Œ์ŠคํŠธ 7 ใ€‰	ํ†ต๊ณผ (0.65ms, 10.2MB)
ํ…Œ์ŠคํŠธ 8 ใ€‰	ํ†ต๊ณผ (0.42ms, 10.2MB)
ํ…Œ์ŠคํŠธ 9 ใ€‰	ํ†ต๊ณผ (1.37ms, 10.3MB)
ํ…Œ์ŠคํŠธ 10 ใ€‰	ํ†ต๊ณผ (12.32ms, 10.3MB)
ํ…Œ์ŠคํŠธ 11 ใ€‰	ํ†ต๊ณผ (0.98ms, 10.3MB)
  • ๊ณ ์ˆ˜์˜ ํ’€์ด. ๊ฐ„๊ฒฐํ•˜๊ณ  ๋น ๋ฅธ๋ฐ ํ…Œ์ผ€ 5๋ฒˆ๋งŒ ์—„์ฒญ ๋Š๋ฆฌ๋‹ค.
import re
import itertools

def solution(user_id, banned_id):
    answer = 0
    banned_id = ["'" + _.replace('*', '\w') + "'"  for _ in banned_id]
    possible_list = [re.findall(_, str(user_id)) for _ in banned_id]    
    possible_list = list(itertools.product(*possible_list))
    possible_list = [frozenset(p) for p in possible_list if len(set(p)) == len(banned_id)]
    possible_list = set(possible_list)
    # possible_list = [set(_) for _ in possible_list if len(set(_)) == len(banned_id)]

    return len(possible_list)
    
์ •ํ™•์„ฑ  ํ…Œ์ŠคํŠธ
ํ…Œ์ŠคํŠธ 1 ใ€‰	ํ†ต๊ณผ (0.09ms, 10.3MB)
ํ…Œ์ŠคํŠธ 2 ใ€‰	ํ†ต๊ณผ (0.19ms, 10.3MB)
ํ…Œ์ŠคํŠธ 3 ใ€‰	ํ†ต๊ณผ (0.16ms, 10.1MB)
ํ…Œ์ŠคํŠธ 4 ใ€‰	ํ†ต๊ณผ (0.19ms, 10.1MB)
ํ…Œ์ŠคํŠธ 5 ใ€‰	ํ†ต๊ณผ (9078.26ms, 1.94GB)
ํ…Œ์ŠคํŠธ 6 ใ€‰	ํ†ต๊ณผ (2.45ms, 10.6MB)
ํ…Œ์ŠคํŠธ 7 ใ€‰	ํ†ต๊ณผ (0.19ms, 10.2MB)
ํ…Œ์ŠคํŠธ 8 ใ€‰	ํ†ต๊ณผ (0.23ms, 10.1MB)
ํ…Œ์ŠคํŠธ 9 ใ€‰	ํ†ต๊ณผ (0.31ms, 10.2MB)
ํ…Œ์ŠคํŠธ 10 ใ€‰	ํ†ต๊ณผ (0.40ms, 10.2MB)
ํ…Œ์ŠคํŠธ 11 ใ€‰	ํ†ต๊ณผ (0.25ms, 10.1MB)
  • ๋‚˜๋„ ํŒŒ์ด์ฌ re ๊ธฐ๋Šฅ์„ ๋งŽ์ด ์จ๋ด์•ผํ•  ๋“ฏ...
import re
from itertools import permutations


def solution(user_id, banned_id):
    banned_id = [banned.replace("*", ".") for banned in banned_id]
    len_banned_id = len(banned_id)
    blocked = set()
    for users in permutations(user_id, len_banned_id):
        all_banned = True
        if len(users) == len(set(users)):
            for banned, user in zip(banned_id, users):
                if not re.fullmatch(banned, user):
                    all_banned = False
                    break
            if all_banned:
                blocked.add(tuple(sorted(users)))
    return len(blocked)
    
์ •ํ™•์„ฑ  ํ…Œ์ŠคํŠธ
ํ…Œ์ŠคํŠธ 1 ใ€‰	ํ†ต๊ณผ (0.05ms, 10.1MB)
ํ…Œ์ŠคํŠธ 2 ใ€‰	ํ†ต๊ณผ (1.38ms, 10.1MB)
ํ…Œ์ŠคํŠธ 3 ใ€‰	ํ†ต๊ณผ (0.41ms, 10.2MB)
ํ…Œ์ŠคํŠธ 4 ใ€‰	ํ†ต๊ณผ (0.29ms, 10.1MB)
ํ…Œ์ŠคํŠธ 5 ใ€‰	ํ†ต๊ณผ (255.44ms, 10.2MB)
ํ…Œ์ŠคํŠธ 6 ใ€‰	ํ†ต๊ณผ (37.99ms, 10.2MB)
ํ…Œ์ŠคํŠธ 7 ใ€‰	ํ†ต๊ณผ (2.44ms, 10.2MB)
ํ…Œ์ŠคํŠธ 8 ใ€‰	ํ†ต๊ณผ (2.19ms, 10.2MB)
ํ…Œ์ŠคํŠธ 9 ใ€‰	ํ†ต๊ณผ (4.63ms, 10.2MB)
ํ…Œ์ŠคํŠธ 10 ใ€‰	ํ†ต๊ณผ (47.91ms, 10.3MB)
ํ…Œ์ŠคํŠธ 11 ใ€‰	ํ†ต๊ณผ (3.52ms, 10.3MB)
  • ์ด๊ฒƒ๋„ ์ •๊ทœ์‹, ์†๋„๋Š” ๋” ๋น ๋ฆ„.
def solution(user_id, banned_id):
    from re import fullmatch
    from itertools import permutations

    bans = '/'.join(banned_id).replace('*','.')
    res = set()
    for per in permutations(user_id, len(banned_id)):
        if fullmatch(bans, '/'.join(per)):
            res.add(''.join(sorted(per)))

    return len(res)
    
์ •ํ™•์„ฑ  ํ…Œ์ŠคํŠธ
ํ…Œ์ŠคํŠธ 1 ใ€‰	ํ†ต๊ณผ (0.05ms, 10.1MB)
ํ…Œ์ŠคํŠธ 2 ใ€‰	ํ†ต๊ณผ (0.58ms, 10.2MB)
ํ…Œ์ŠคํŠธ 3 ใ€‰	ํ†ต๊ณผ (0.21ms, 10.1MB)
ํ…Œ์ŠคํŠธ 4 ใ€‰	ํ†ต๊ณผ (0.16ms, 10.2MB)
ํ…Œ์ŠคํŠธ 5 ใ€‰	ํ†ต๊ณผ (57.51ms, 10.1MB)
ํ…Œ์ŠคํŠธ 6 ใ€‰	ํ†ต๊ณผ (14.90ms, 10.3MB)
ํ…Œ์ŠคํŠธ 7 ใ€‰	ํ†ต๊ณผ (1.41ms, 10.2MB)
ํ…Œ์ŠคํŠธ 8 ใ€‰	ํ†ต๊ณผ (0.66ms, 10.2MB)
ํ…Œ์ŠคํŠธ 9 ใ€‰	ํ†ต๊ณผ (1.20ms, 10.1MB)
ํ…Œ์ŠคํŠธ 10 ใ€‰	ํ†ต๊ณผ (28.55ms, 10.1MB)
ํ…Œ์ŠคํŠธ 11 ใ€‰	ํ†ต๊ณผ (1.79ms, 10.1MB)
  • ์ •๊ทœ ํ‘œํ˜„์‹ ์•ˆ์“ฐ๊ณ  ๋งŒ๋“ ๊ฑฐ, ํ…Œ์ผ€5๋ฒˆ ๋นผ๊ณ  ์™„์ „ ๋น ๋ฆ„.
    • ์ฒ˜์Œ์— ๋จธ๋ฆฌ์†์œผ๋กœ ๋– ์˜ฌ๋ ธ๋˜ ๋ฐฉ์‹์ด ์ด๋Ÿฐ ๋ฐฉ์‹์ด์—ˆ๋Š”๋ฐ
    • ๋ฌธ์ž์—ด ์ „์ฒ˜๋ฆฌํ•˜๋Š”๊ฑฐ๋ž‘ ํผ๋ฎคํ…Œ์ด์…˜ ์‚ฝ์งˆํ•˜๋‹ค๊ฐ€ ๊ทธ๋ƒฅ ๋‹ค ํฌ๊ธฐํ•˜๊ณ  ํ†ต์งœ๋กœ for๋ฌธ ๋Œ๋ ค๋ฒ„๋ ธ...
def combi(temp, number, calculate):
    global result
    if len(temp) == len(calculate):
        temp = set(temp)
        if temp not in result:
            result.append(temp)
        return
    else:
        for j in range(len(calculate[number])):
            if calculate[number][j] not in temp:
                temp.append(calculate[number][j])
                combi(temp, number+1, calculate)
                temp.pop()
result = []
def solution(user_id, banned_id):
    global result
    calculate = []
    for ban in banned_id:
        possible=[]
        for user in user_id:
            if len(ban) != len(user):
                continue
            else:
                count = 0
                for i in range(len(ban)):
                    if user[i] == ban[i]:
                        count+=1
                if count == len(ban)-ban.count('*'):
                    possible.append(user)
        calculate.append(possible)

    combi([], 0, calculate)
    return len(result)
    
์ •ํ™•์„ฑ  ํ…Œ์ŠคํŠธ
ํ…Œ์ŠคํŠธ 1 ใ€‰	ํ†ต๊ณผ (0.01ms, 10.2MB)
ํ…Œ์ŠคํŠธ 2 ใ€‰	ํ†ต๊ณผ (0.04ms, 10.1MB)
ํ…Œ์ŠคํŠธ 3 ใ€‰	ํ†ต๊ณผ (0.04ms, 10.2MB)
ํ…Œ์ŠคํŠธ 4 ใ€‰	ํ†ต๊ณผ (0.03ms, 10.3MB)
ํ…Œ์ŠคํŠธ 5 ใ€‰	ํ†ต๊ณผ (115.12ms, 10.4MB)
ํ…Œ์ŠคํŠธ 6 ใ€‰	ํ†ต๊ณผ (0.96ms, 10.2MB)
ํ…Œ์ŠคํŠธ 7 ใ€‰	ํ†ต๊ณผ (0.03ms, 10.3MB)
ํ…Œ์ŠคํŠธ 8 ใ€‰	ํ†ต๊ณผ (0.04ms, 10.1MB)
ํ…Œ์ŠคํŠธ 9 ใ€‰	ํ†ต๊ณผ (0.05ms, 10.2MB)
ํ…Œ์ŠคํŠธ 10 ใ€‰	ํ†ต๊ณผ (0.03ms, 10.2MB)
ํ…Œ์ŠคํŠธ 11 ใ€‰	ํ†ต๊ณผ (0.05ms, 10.2MB)
728x90
๋ฐ˜์‘ํ˜•