๐ฑ Algorithm(53)
-
ํ๋ก๊ทธ๋๋จธ์ค [lv2] ๋ฐฐ๋ฌ ํ์ด์ฌ
๋ ธ๋ ๊ฐ์ ์ต์ ๊ฑฐ๋ฆฌ๋ฅผ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. 1๋ฒ ๋ ธ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ต์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋๋ฐ, heap ํน์ deque ์ ์ฌ์ฉํ์ฌ ์ ๊ทผ ํ ์ ์๋ค. ๐ heap ์ ์ฌ์ฉํ ํ์ด import heapq def solution(N, road, K): distance = [float('inf')] * (N + 1) adj = [[] for _ in range(N + 1)] for r in road: adj[r[0]].append([r[2], r[1]]) adj[r[1]].append([r[2], r[0]]) distance[1] = 0 heap = [] heapq.heappush(heap, [0, 1]) while heap: cost, node = heapq.heappop(heap) for ..
2021.07.28 -
ํ๋ก๊ทธ๋๋จธ์ค [lv2] ํ์ผ๋ช ์ ๋ ฌ ํ์ด์ฌ
์ ๋ต ์ฝ๋ import re def solution(files): filtered_files = [re.split("([0-9]+)", file) for file in files] sorted_files = sorted(filtered_files, key=lambda x: (x[0].lower(), int(x[1]))) return [(''.join(s)) for s in sorted_files] files = ["img12.png", "img10.png", "img02.png", "img1.png", "IMG01.GIF", "img2.JPG"] solution(files) >>> ['img1.png', 'IMG01.GIF', 'img02.png', 'img2.JPG', 'img10.png', 'img1..
2021.07.25 -
ํ๋ก๊ทธ๋๋จธ์ค [lv1] ์ ๊ท์์ด๋์ถ์ฒ
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ ๊ท ์์ด๋ ์ถ์ฒ ์นด์นด์ค์ ์ ์ฌํ ์ ์ ๊ฐ๋ฐ์ ๋ค์ค๋ "์นด์นด์ค๊ณ์ ๊ฐ๋ฐํ"์ ๋ฐฐ์น๋์ด, ์นด์นด์ค ์๋น์ค์ ๊ฐ์ ํ๋ ์ ์ ๋ค์ ์์ด๋๋ฅผ ์์ฑํ๋ ์ ๋ฌด๋ฅผ ๋ด๋นํ๊ฒ ๋์์ต๋๋ค. "๋ค์ค"์๊ฒ ์ฃผ์ด์ง ์ฒซ ์ ๋ฌด๋ ์๋ก programmers.co.kr โ ์ ๊ทผ ์ง๋ฌธ ๊ธธ์ด๊ฐ ๊ธธ์ด ๋นํฉํ์ง๋ง, ์ ํ ๋ด์ฉ์ ๊ทธ๋๋ก ์ฝ๋๋ก ์ฎ๊ธฐ๋ฉด ๋๋ ์ด๋ ต์ง ์์ ๋ฌธ์ ์ ๋๋ค. ๋ฌธ์์ด์ ์๋จ๊ณผ ๋ท๋จ์์ ๋นผ๋ ์์ ์ด ํ์ํ์ฌ deque() ์ ์ฌ์ฉํ์ต๋๋ค. ๐ป ์ฝ๋ from collections import deque def solution(new_id): # 1๋จ๊ณ new_id = new_id.lower() # 2๋จ๊ณ second = '' for l in new_id: if l.isdigit() or l.isalpha() or..
2021.07.22 -
ํ๋ก๊ทธ๋๋จธ์ค [lv1] ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด ํ์ด์ฌ
https://programmers.co.kr/learn/courses/30/lessons/81301 ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด ๋ค์ค์ ํ๋ก๋๊ฐ ์ซ์๋์ด๋ฅผ ํ๊ณ ์์ต๋๋ค. ๋ค์ค๊ฐ ํ๋ก๋์๊ฒ ์ซ์๋ฅผ ๊ฑด๋ฌ ๋ ์ผ๋ถ ์๋ฆฟ์๋ฅผ ์๋จ์ด๋ก ๋ฐ๊พผ ์นด๋๋ฅผ ๊ฑด๋ค์ฃผ๋ฉด ํ๋ก๋๋ ์๋ ์ซ์๋ฅผ ์ฐพ๋ ๊ฒ์์ ๋๋ค. ๋ค์์ ์ซ์์ ์ผ๋ถ ์ programmers.co.kr โ ์ ๊ทผ ๋ฌธ์์ด s ๋ฅผ deque ๋ก ๋ง๋ค์ด, ๋ ์ด์ ์กด์ฌํ์ง ์์ ๋๊น์ง ์ ๊ธ์๋ถํฐ popleft() ํฉ๋๋ค. popleft() ๋ ๊ธ์๋ฅผ i ๋ผ ํฉ๋๋ค. i ๊ฐ ์ซ์์ผ ๋์ ๋ฌธ์์ผ ๋๋ฅผ ๊ตฌ๋ถ์ง์ด ๋ถ๊ธฐํฉ๋๋ค. ์ด ๋ ๊ตฌ๋ถ ๋ฐฉ๋ฒ์ isdigit() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ต๋๋ค. i ๊ฐ ๋ฌธ์์ผ ๋, ์ด์ ์ i์ ์ด์ด๋ถ์ฌ ํด๋น ๋ฌธ์๊ฐ alphabet ์ ke..
2021.07.21 -
ํ๋ก๊ทธ๋๋จธ์ค [lv1] ์์ฃผํ์ง ๋ชปํ ์ ์ ํ์ด์ฌ
๐ ์ ๊ทผ 1. ์ฐธ๊ฐ์์ ์์ฃผ์๋ฅผ ๊ฐ dictionary ์ ์ ์ฅ. 2. value ๊ฐ์ด 2 ์ด์ ๋์ค๋ key ๋, ๋์ผํ ์ด๋ฆ์ ์ฐธ๊ฐ์๊ฐ ์กด์ฌํ๋ค๋ ๋ป์ด๋ค. 3. ์ด ์ ์ ์ ์ํ์ฌ, ๋์ผํ key ์ ๋ํด ๊ฐ dictionary ์ value ๊ฐ์ด ๋์ผํ์ง, ๊ทธ๋ ์ง ์์์ง ์ฐพ์๋ธ๋ค. # ํต๊ณผ def solution(participant, completion): answer = '' parti = dict() comple = dict() for name in participant: try: parti[name] += 1 except KeyError: parti[name] = 1 for name in completion: try: comple[name] += 1 except KeyError: comple[..
2021.06.30 -
ํ๋ก๊ทธ๋๋จธ์ค [lv3] ๊ฐ์ฅ ๊ธด ํฐ๋ฆฐ๋๋กฌ ํ์ด์ฌ
๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ 1. s[::-1], ํ์ด์ฌ์ ๋ฌธ์์ด ์ญ์ ๋ฉ์๋ 2. for ๋ฌธ ๋ฒ์์ก๊ธฐ ์ ๋ต ์ฝ๋ def palindrome(s): if len(s) len(s): break ์ ๊ทผ ๊ณผ์ pali..
2021.05.27 -
ํ๋ก๊ทธ๋๋จธ์ค [lv2] ๋ฐฉ๊ธ ๊ทธ ๊ณก ํ์ด์ฌ
์ ๊ทผ ๋๋ฌด ๋ณต์กํ ๋ฌธ์ ๋ผ ์๊ฐํ๊ณ ์ ๊ทผํ๋ ์ฝ๋๋ ์ค์ ๋ก ๋๋ฌ์์ก๋ค. #์ด ๋ถ์ ์์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋์ง๊ฐ ์ค์ ๊ด๊ฑด์ธ๋ฐ, C#์ ๊ผญ 'C#' ์ฒ๋ผ ํ๋์ ์์๋ก ๋ฌถ์ ํ์๊ฐ ์์๊น? ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ๋ ๊ณผ์ ๋ ์ค์ํ์ง๋ง, ๊ฒฐ๊ณผ๋ฅผ ํค์น์ง ์๋ ์ ์์ ๊ณผ์ ์ ๋ง์ ๊ป ๋ณ๊ฒฝ๋ผ๋ ๊ด์ฐฎ๋ค. C#์ ๊ทธ๋ฅ ์๋ฌธ์ c๋ก ๋ฐ๊ฟ๋ฒ๋ฆฌ๋ ๋ฐฉ๋ฒ์ ํํด๋ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ๋๋ฐ ๋ฌธ์ ์๋ค. ์ค์ ํฌ์ธํธ 1. ๋ต์ด ์ฌ๋ฌ๊ฐ์ธ ๊ฒฝ์ฐ์ ๋ต์ด ์๋ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํด์ผ ํ๋ค. ์ฌ์ ์ Answer๋ณ์์ ("(None)", None) set๋ฅผ ์ ์ํ๋ค. 2. split() ๋ฉ์๋๋ฅผ ํ์์ ์ผ๋ก ์ฌ์ฉํ ์ ๋ฐ์ ์๋ค. 3. split() ๋ฉ์๋๋ก ๋ฆฌ์คํธ๋ง ๋ง๋ค์ง๋ง๊ณ , ์๋ ์ฝ๋์ฒ๋ผ ๊ฐ๊ฐ์ ์์๋ฅผ ๋ณ์์ ํ ๋นํ ์ ์๋ค. 4. ๋ค์ค๊ฐ ๋ค์ ์ m์ ๋ฐ๋์ mel..
2021.05.22 -
ํ๋ก๊ทธ๋๋จธ์ค [lv1] ๋ก๋์์ต๊ณ ์์์์ต์ ์์ ํ์ด์ฌ
2021 dev-matching์ ๋์จ ๋ฌธ์ ์ธ๋ฐ, ๋ํ ๋น์์๋ ํ๋์ ์ผ์ด์ค๋ก ์ธํด ํต๊ณผํ์ง ๋ชปํ๋ค. 14๋ฒ ์ผ์ด์ค๊ฐ ๋ฌธ์ ์ธ๋ฐ, ์ฐ์ ์ค๋ต์ฝ๋๋ฅผ ์ดํด๋ณด์. ์ค๋ต ์ฝ๋ def solution(lottos, win_nums): count_zero = lottos.count(0) count = [1 for num in lottos if num in win_nums] if not count: return [1, 6] return [7 - (len(count) + count_zero), 7 - len(count)] ํ๋๋ ๋ง์๊ฒ ์๋ค๋ ๊ฒ(count ๊ฐ 0)์ 2๊ฐ์ง๋ก ๋ถ๋ฅ ๋๋๋ฐ, lottos๊ฐ ๋ชจ๋ 0์ผ ๋ [1,6]์ด ๋๊ณ , lottos์ 0์ด ํ๋๋ ์์ ๋, [6,6]์ด ๋๋ค. ์ด ์ ์ ๊ฐ๊ณผํ์ฌ 14๋ฒ..
2021.05.18 -
ํ๋ก๊ทธ๋๋จธ์ค ๊ฐ๋ก๋ฑ ํ์ด์ฌ
๋ฌธ์ ์ค๋ช ์์ธ์์ ์ผ์ง์ ๋ชจ์์ ์๋ก์ด ๋๋ก๊ฐ ์๊ฒผ์ต๋๋ค. ์๋ก์ด ๋๋ก์ ์ ์ฒด ๊ธธ์ด๋ l์ด๊ณ ๋๋ก์๋ ์ด n๊ฐ์ ๊ฐ๋ก๋ฑ์ด ์ธ์์ก์ต๋๋ค. ์ด ๋๋ก์ ๋ชจ๋ ๊ฐ๋ก๋ฑ์ ์ ๊ตฌ๋ฅผ ์ฌ์ ๋ฌ๋ ค๊ณ ํฉ๋๋ค. ์ ๊ตฌ๋ฅผ ์ ํํ๋ ๊ธฐ์ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ ๊ตฌ๋ ๊ธธ์ ์ข์ธก, ์ฐ์ธก ๋ฐฉํฅ์ผ๋ก ๊ฐ๊ฐ d ๊ธธ์ด๋งํผ ๊ธธ์ ๋ฐํ ์ ์๊ณ , d๋ ์์ฐ์์ ๋๋ค. ๋ชจ๋ ๊ฐ๋ก๋ฑ์๋ ๊ฐ์ ์ข ๋ฅ(d ๊ฐ์ด ๊ฐ์)์ ์ ๊ตฌ๋ฅผ ๋ฌ์์ผ ํฉ๋๋ค. ์์ ์ ์ํ์ฌ ๋๋ก์์ ์ด๋์ด ๋ถ๋ถ์ด ์์ด์๋ ์ ๋ฉ๋๋ค. ์ด๋, d ๊ฐ์ด ์ถฉ๋ถํ ํฌ๋ค๋ฉด ์ ์ฒด ๋๋ก๋ฅผ ๋ฐ๊ฒ ๋น์ถ ์ ์์ง๋ง, d ๊ฐ์ด ์์์ง๋ค๋ฉด ๋๋ก ์์ ๋น์ด ๋ฟ์ง ์๋ ๋ถ๋ถ์ด ์๊ธธ ์๋ ์์ต๋๋ค. ๋ฐ๋ผ์, ๋๋ก ์์ ์ด๋์ด ๋ถ๋ถ์ด ์๊ธฐ์ง ์๋๋ก ํ๋ d ๊ฐ ์ค ์ต์๊ฐ์ ๊ตฌํ๋ ค๊ณ ํฉ๋๋ค. ์ ์ฒด ๋๋ก์ ๊ธธ์ด l, ๊ฐ๋ก..
2021.05.16