[TIL_Carrotww] 37 - 22/10/25

์œ ํ˜•์„ยท2022๋…„ 10์›” 25์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
45/138
post-thumbnail

๐Ÿ“Carrotww์˜ ์ฝ”๋”ฉ ๊ธฐ๋ก์žฅ

๐Ÿงฒ python Algorithm

๐Ÿ” programmers ๋‹จ์–ด๋ณ€ํ™˜ BFS ๋ฌธ์ œ
๋ณ„๋กœ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ์ง€ ์•Š์€ ๋ฌธ์ œ์ด๋ฉฐ BFS ํ’€์ด ๋ฐฉ์‹์„ ์•Œ๊ณ  ํ’€์–ด์„œ ๊ทธ๋Ÿฐ์ง€ ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ํ™•์‹คํžˆ BFS, DFS ๋ฌธ์ œ๊ฐ€ ์žฌ๋ฏธ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.
์žฌ๊ท€๋ฅผ ํ’€์—ˆ์„๋•Œ ๊ทธ ๋ฝ•๋ง›(?) ์ด๋ผ๊ณ  ํ•ด์•ผํ•˜๋‚˜? ์•”ํŠผ ๋‚œ ๊ทธ๋ ‡๋‹ค.

๊ธฐ์–ตํ•ด์•ผ ํ•  ๋ถ€๋ถ„์€ ๊ทธ๋ž˜ํ”„ ๋ฌธ์ œ์—์„œ ์ตœ๋‹จ๊ฑฐ๋ฆฌ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ์—ฌ๋„ ์œ„์™€ ๊ฐ™์ด ๋‹จ์–ด ๋ณ€ํ™˜ ๋ฌธ์ œ์—์„œ๋„ ์ตœ์†Œ ๋ณ€ํ™˜ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๋Š” BFS๋ฅผ ์ž˜ ๋– ์˜ฌ๋ฆฌ์ž.

  • ํ’€์ด
from collections import deque

def solution(begin, target, words):

    queue = deque([(begin, 0)])
    visited = [begin]
    while queue:
        temp_val, cnt = queue.popleft()
        if temp_val == target:
            return cnt
        for wo in words:
            diff_cnt = 0
            for i in range(len(wo)):
                if wo[i] != temp_val[i]:
                    diff_cnt += 1
                if diff_cnt > 1:
                    break
            if diff_cnt == 1 and wo not in visited:
                queue.append((wo, cnt+1))
                visited.append(wo)
    return 0

์ถ”๊ฐ€๋กœ ๋‚˜๋Š” ํ•œ ๊ธ€์ž ์ฐจ์ด์˜ ๋‹จ์–ด ์‹๋ณ„์—์„œ ์ธ๋ฑ์Šค๋กœ ๋น„๊ตํ•˜์˜€๋Š”๋ฐ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด์—์„œ๋Š” ๋ฌธ์ž ๊ธธ์ด๋Š” ๊ฐ™์•„ zip() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ณด์•˜๋Š”๋ฐ ์ข‹์€ ๋ฐฉ์‹์ธ ๊ฒƒ ๊ฐ™๋‹ค.

๐Ÿงฒ python Algorithm

๐Ÿ” programmers ๋ชจ์˜๊ณ ์‚ฌ 1๋ ˆ๋ฒจ ๋ฌธ์ œ๋ผ ์ž๊ธฐ์ „์— ์ž ๊น ํ’€๊ณ  ์ž๋ ค๊ณ  ํ–ˆ๋‹ค๊ฐ€ ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ ค์„œ ์งœ์ฆ๋‚˜์„œ ๊ธฐ๋กํ•˜๋Š” ๋ฌธ์ œ
์›๋ž˜ 1๋ ˆ๋ฒจ์€ ์ฝ”๋”ฉ ๊ธฐ๋ก์žฅ์— ์•ˆ ์“ฐ๋ ค ํ–ˆ๋Š”๋ฐ ์ด ๋ฌธ์ œ๋Š” 1๋ ˆ๋ฒจ ๊ฐ™์ง€๊ฐ€ ์•Š๋‹ค.

  • ํ’€์ด
def solution(answers):
    pick_val = [[1, 2, 3, 4, 5], [2, 1, 2, 3, 2, 4, 2, 5], [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]]
    result = [0, 0, 0]

    for i in range(3):
        temp = pick_val[i]
        viv = len(answers) // len(temp)
        if viv != 0:
            temp *= viv + 1
        for x, y in list(zip(temp, answers)):
            if x == y:
                result[i] += 1
    return [num for num, key in enumerate(result, start=1) if key == max(result)]

python ์—์„œ zip ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด

test1 = [1, 2, 3]
test2 = [4, 5]
print(list(zip(test1, test2)) # [(1, 4), (2, 5)]

1๋ ˆ๋ฒจ ๋ฌธ์ œ ์น˜๊ณ ๋Š” ๊ณ ๋ คํ•ด์•ผํ•  ๋ถ€๋ถ„์ด ์กฐ๊ธˆ ์žˆ์–ด์„œ...
์œ„ ๊ฒฐ๊ณผ์™€ ๊ฐ™์ด ์ž‘์€ list ๊ธฐ์ค€์œผ๋กœ ๋งž์ถฐ์ ธ ์ด๊ฒƒ์„ ์ด์šฉํ•˜์˜€๋‹ค.
๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ํ’€์ด๋ฅผ ๋ณด๋‹ˆ ์œ„ ํ’€์ด๋กœ ํ‘ผ์‚ฌ๋žŒ์€ ์—†๋”๋ผ...
๋ณดํ†ต์€ input ์ •๋‹ต์— ์ธ๋ฑ์Šค์— list ๊ธธ์ด๋ฅผ ๋‚˜๋ˆ„์–ด์„œ ์ธ๋ฑ์Šค๋ณ„๋กœ ๋น„๊ต๋ฅผ ํ•˜์˜€๋‹ค.

for idx, answer in enumerate(answers):
        if answer == pattern1[idx%len(pattern1)]:
            score[0] += 1

์ด๋ ‡๊ฒŒ ๋ง์ด๋‹ค.

๐Ÿงฒ Django rest_framwork

๐Ÿ” ๋ฐฐ์šด ๋‚ด์šฉ์„ ๊ธธ๊ฒŒ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค. ์˜ค๋ฅ˜๋‚˜ ์ง„์งœ ์ถฉ๊ฒฉ๋ฐ›์€ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค.
์•„๋ฌดํŠผ, restfull ํ•˜๋‹ค. ๋ผ๋Š” ๋‹จ์–ด๋Š” ์œ ํŠœ๋ธŒ, ๊ตฌ๊ธ€๋ง์„ ํ†ตํ•˜์—ฌ ์ ‘ํ–ˆ์„๋•Œ ์—„์ฒญ ์™€๋‹ฟ์ง€๋Š” ์•Š์•˜๋Š”๋ฐ rest_framwork ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  django๋ฅผ ๋งŒ๋“ค๋•Œ์™€ ์‚ฌ์šฉํ•˜๊ณ  ๋งŒ๋“ค๋•Œ์˜ ์ฐจ์ด๊ฐ€ ์ง„์งœ... ์™œ ์ฒ˜์Œ๋ถ€ํ„ฐ ์•ˆ ์•Œ๋ ค์ฃผ์—ˆ๋Š”์ง€ ์•Œ ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•˜๊ณ ...
์ง€๊ธˆ๊นŒ์ง€ ์›น ๊ฐœ๋ฐœ์„ ํ•˜๋ฉฐ ์ƒ๊ฒผ๋˜ ์˜๋ฌธ๋“ค์ด ํ•œ ๋ฒˆ์— ํ’€๋ ธ๋‹ค. ํŽ˜์ด์ง€๋ฅผ render ํ•˜๋ฉฐ ์ด๋ฏธ์ง€ ํ•˜๋‚˜ ์ถ”๊ฐ€ํ•˜๋Š”๋ฐ ํŽ˜์ด์ง€๊ฐ€ ์ƒˆ๋กœ๊ณ ์นจ ๋˜์–ด์•ผ ํ–ˆ๋˜ ๊ทธ๋Ÿฐ ๋ถˆํ•ฉ๋ฆฌํ•จ๋“ค...

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ์ƒ๊ธฐ๋Š” ์˜๋ฌธ์ ๋“ค์ค‘ ํฌ์ง€ ์•Š์€ ์˜๋ฌธ์ ์€ ์‹œ๊ฐ„์ด ์—†์–ด ๋ฌป์–ด๋‘๊ณ  ์ง€๋‚˜๊ฐˆ ๋•Œ๋„ ์žˆ์—ˆ๋Š”๋ฐ ๊ทธ๋Ÿฐ ์˜๋ฌธ์ ๋“ค์ด ์‹œ์›~ํ•˜๊ฒŒ ํ•ด๊ฒฐ๋๋‹ค.
restful ํ•˜๋‹ค๋ผ๋Š” ์šฉ์–ด๋ฅผ ์ดํ•ดํ•˜๊ณ  ๋‚˜๋‹ˆ Django์— ์—„์ฒญ ํฅ๋ฏธ๊ฐ€ ์ƒ๊ฒผ๋‹ค. ๊ฟ€์žผ ใ…Ž

0๊ฐœ์˜ ๋Œ“๊ธ€