๐ 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() ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ณด์๋๋ฐ ์ข์ ๋ฐฉ์์ธ ๊ฒ ๊ฐ๋ค.
๐ 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
์ด๋ ๊ฒ ๋ง์ด๋ค.
๐ ๋ฐฐ์ด ๋ด์ฉ์ ๊ธธ๊ฒ ์ ๋ฆฌํ๋ ค๊ณ ํ์ง๋ ์๋๋ค. ์ค๋ฅ๋ ์ง์ง ์ถฉ๊ฒฉ๋ฐ์ ๋ด์ฉ์ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค.
์๋ฌดํผ, restfull ํ๋ค. ๋ผ๋ ๋จ์ด๋ ์ ํ๋ธ, ๊ตฌ๊ธ๋ง์ ํตํ์ฌ ์ ํ์๋ ์์ฒญ ์๋ฟ์ง๋ ์์๋๋ฐ rest_framwork ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ django๋ฅผ ๋ง๋ค๋์ ์ฌ์ฉํ๊ณ ๋ง๋ค๋์ ์ฐจ์ด๊ฐ ์ง์ง... ์ ์ฒ์๋ถํฐ ์ ์๋ ค์ฃผ์๋์ง ์ ๊ฒ ๊ฐ๊ธฐ๋ ํ๊ณ ...
์ง๊ธ๊น์ง ์น ๊ฐ๋ฐ์ ํ๋ฉฐ ์๊ฒผ๋ ์๋ฌธ๋ค์ด ํ ๋ฒ์ ํ๋ ธ๋ค. ํ์ด์ง๋ฅผ render ํ๋ฉฐ ์ด๋ฏธ์ง ํ๋ ์ถ๊ฐํ๋๋ฐ ํ์ด์ง๊ฐ ์๋ก๊ณ ์นจ ๋์ด์ผ ํ๋ ๊ทธ๋ฐ ๋ถํฉ๋ฆฌํจ๋ค...ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ์๊ธฐ๋ ์๋ฌธ์ ๋ค์ค ํฌ์ง ์์ ์๋ฌธ์ ์ ์๊ฐ์ด ์์ด ๋ฌป์ด๋๊ณ ์ง๋๊ฐ ๋๋ ์์๋๋ฐ ๊ทธ๋ฐ ์๋ฌธ์ ๋ค์ด ์์~ํ๊ฒ ํด๊ฒฐ๋๋ค.
restful ํ๋ค๋ผ๋ ์ฉ์ด๋ฅผ ์ดํดํ๊ณ ๋๋ Django์ ์์ฒญ ํฅ๋ฏธ๊ฐ ์๊ฒผ๋ค. ๊ฟ์ผ ใ