๐Ÿ”— Algorithm/Python

    [Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ง€ํ˜• ์ด๋™

    [Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ง€ํ˜• ์ด๋™

    ๋ฌธ์ œ programmers.co.kr/learn/courses/30/lessons/62050 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ง€ํ˜• ์ด๋™ [[1, 4, 8, 10], [5, 5, 5, 5], [10, 10, 10, 10], [10, 10, 10, 20]] 3 15 [[10, 11, 10, 11], [2, 21, 20, 10], [1, 20, 21, 11], [2, 1, 2, 1]] 1 18 programmers.co.kr ๊ณ„์† ํ‹€๋ ค์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ๋ณด๊ณ  ํ‘ผ ๋ฌธ์ œ์ด๋‹ค. ์–ด๋–ป๊ฒŒ ์ด๋Ÿฐ์ƒ๊ฐ์„ ๋– ์˜ฌ๋ฆฌ์ง€...? heap์„ ์‚ฌ์šฉํ•ด์„œ ํ’€์—ˆ๋‹ค. ์ƒ,ํ•˜,์ขŒ,์šฐ ์นธ ์ค‘์— ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ์นธ๊ณผ์˜ ๊ธธ์ด๊ฐ€ height๋ณด๋‹ค ํฌ๋‹ค๋ฉด heap์— ์ฐจ์ด์™€ ์ ์„ ๊ธฐ๋กํ•œ๋‹ค. height๋ณด๋‹ค ์ž‘๋‹ค๋ฉด 0๊ณผ ์ ์„ ๊ธฐ๋กํ•œ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•ด์„œ min heap์œผ๋กœ..

    [Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํ•ฉ์Šน ํƒ์‹œ ์š”๊ธˆ

    [Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํ•ฉ์Šน ํƒ์‹œ ์š”๊ธˆ

    ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ์•„๋ž˜ ๋งํฌ ์ฐธ์กฐ programmers.co.kr/learn/courses/30/lessons/72413 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํ•ฉ์Šน ํƒ์‹œ ์š”๊ธˆ 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr Dijkstra ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ด์„œ ํ’€์—ˆ๋‹ค. (์ตœ๋‹จ๊ฑฐ๋ฆฌ..

    [Python] ๋ฐฑ์ค€ 7453

    [Python] ๋ฐฑ์ค€ 7453

    ์„ธ์ƒ ๋ณต์žกํ•˜๊ณ  ๊นŒ๋‹ค๋กœ์› ๋‹ค.. ์ด๊ฒƒ ์ €๊ฒƒ ์‹œ๋„ํ•ด๋ณด์•˜๋Š”๋ฐ 12์ดˆ๋‚˜ ์ฃผ์–ด์ง„ ์‹œ๊ฐ„์ด ์ž๊พธ ์ดˆ๊ณผ๋ผ์„œ ์ดํ‹€์ด๋‚˜ ๊ฑธ๋ฆฐ ๋ฌธ์ œ,, ๋น„์Šทํ•œ ์œ ํ˜•์˜ ๋ฌธ์ œ๊ฐ€ ๋งŽ๋‹ค. ๋ฐฑ์ค€ 1208๋ฒˆ ๋ฌธ์ œ๋„ ๊ฐ™์€ ์œ ํ˜•์ด๋ฏ€๋กœ ์œ ํ˜•์— ๋Œ€ํ•œ ์„ค๋ช…์€ ์•„๋ž˜ ๋งํฌ์—์„œ ์ฐธ์กฐ ๐Ÿ“Œhttps://990427.tistory.com/48 [Python] ๋ฐฑ์ค€ 1208 ๊ตฌ๊ธ€๋ง์ด ์ž˜ ์•ˆ๋ผ์„œ...์ง์ ‘ ์“ฐ๋Š” ๋ฆฌ๋ทฐ ๐Ÿ˜… 1182๋ฒˆ ๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ๊ณผ ๊ฐ™์€ ์œ ํ˜•์˜ ๋ฌธ์ œ์ด์ง€๋งŒ ๋ฒ”์œ„์™€ ์‹œ๊ฐ„์ œํ•œ ๋“ฑ์œผ๋กœ ๋‹ค๋ฅธ ํ’€์ด ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•ด์•ผํ•œ๋‹ค. n๊ฐœ์˜ ์›์†Œ๋ฅผ ๊ฐ€์ง„ ์ˆ˜์—ด์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๊ตฌํ•˜ 990427.tistory.com ์šฐ์„  1208๋ฒˆ๊ณผ ๊ฐ™์ด ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋”๋‹ˆ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๋‹ค. ์ด์œ ๋Š” ์ •๋ง ๋ชจ๋ฅด๊ฒ ๋‹ค... ๋”•์…”๋„ˆ๋ฆฌ์˜ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(1)์ด๊ธด ํ•˜์ง€๋งŒ ์ˆจ์–ด์žˆ๋Š” ์ƒ์ˆ˜๊ฐ€ ๋งค์šฐ ํฌ๋‹ค๊ณ  ํ•œ..

    [Python] ๋ฐฑ์ค€ 1208

    [Python] ๋ฐฑ์ค€ 1208

    ๊ตฌ๊ธ€๋ง์ด ์ž˜ ์•ˆ๋ผ์„œ...์ง์ ‘ ์“ฐ๋Š” ๋ฆฌ๋ทฐ ๐Ÿ˜… 1182๋ฒˆ ๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ๊ณผ ๊ฐ™์€ ์œ ํ˜•์˜ ๋ฌธ์ œ์ด์ง€๋งŒ ๋ฒ”์œ„์™€ ์‹œ๊ฐ„์ œํ•œ ๋“ฑ์œผ๋กœ ๋‹ค๋ฅธ ํ’€์ด ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•ด์•ผํ•œ๋‹ค. n๊ฐœ์˜ ์›์†Œ๋ฅผ ๊ฐ€์ง„ ์ˆ˜์—ด์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 2**n ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด ๋ฌธ์ œ์˜ ์ตœ๋Œ€ ๋ฒ”์œ„๋Š” n==40์ด๋ฏ€๋กœ ์ตœ์•…์˜ ๊ฒฝ์šฐ 2**40์˜ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๊ฒŒ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ์ด ๋ฌธ์ œ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ  ๋ฐ˜์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๊ตฌํ•  ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿผ ์ตœ์•…์˜ ๊ฒฝ์šฐ (2**20)*2์ด๋‹ค. (2**20)*2 = 2097152 VS 2**40 = 1099511627776 ํšจ์œจ ใ…‡ใ…ˆ? ๋‚˜๋Š” ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ๊ตฌํ–ˆ๋‹ค. (์ด์œ ๋Š” ๋’ค์—) key : ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ value : ํ•ด๋‹น ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ์ด ๋‚˜์˜จ ํšŸ์ˆ˜ ์˜ˆ์ œ๋ฅผ ์˜ˆ๋กœ ๋“ค์–ด ์ฝ”๋“œ ์„ค๋ช…์„ ํ•˜์ž๋ฉด ์šฐ์„  l=[..

    [Python] ๋ฐฑ์ค€ 1167, 1967

    [Python] ๋ฐฑ์ค€ 1167, 1967

    ์ž…๋ ฅ๊ฐ’์˜ ์ฐจ์ด ์™ธ์—๋Š” ๋˜‘๊ฐ™์€ ๋ฌธ์ œ์ด๋‹ค. ๋จผ์ € ํŠธ๋ฆฌ์˜ ์ง€๋ฆ„์„ ์ฐพ๋Š”๋ฐ์—๋Š” rule์ด ์žˆ๋‹ค. โœ” ํŠธ๋ฆฌ์—์„œ ์ž„์˜์˜ ๋…ธ๋“œ(A)๋ฅผ ์„ ํƒํ•ด ๊ฐ€์žฅ ๋จผ ๋…ธ๋“œ๋ฅผ ์ฐพ๋Š”๋‹ค. -> B โœ” B์—์„œ ๊ฐ€์žฅ ๋จผ ๋…ธ๋“œ๋ฅผ ์ฐพ๋Š”๋‹ค. -> C โœ” ๊ทธ๋Ÿฌ๋ฉด B์™€ C์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ๋ฉ€๋‹ค. (==์ง€๋ฆ„) ์ด ๊ทœ์น™์„ ์•Œ๋ฉด ์‰ฝ๊ฒŒ ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๊ฒ ๋‹ค. ๋ชจ๋ฅด๋ฉด ใ… ใ…  ์‚ฝ์งˆ ํ•˜๋‹ˆ๊นŒ ์•Œ๊ณ ์žˆ์ž... Answer 1167 import sys from collections import defaultdict from collections import deque n=int(sys.stdin.readline()) dic=defaultdict(list) for i in range(n): l=list(map(int,sys.stdin.readline().split())) a..

    [Python] ๋ฐฑ์ค€ 10917

    [Python] ๋ฐฑ์ค€ 10917

    ์–ด๋ ค์› ๋˜ ๋ฌธ์ œ๋Š” ์Šค์Šค๋กœ ์†”๋ธŒํ•ด๋„ ๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด๋ž‘ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฒ€์ƒ‰์„ ํ•ด๋ณด๋Š”๋ฐ ํ‘ผ ์‚ฌ๋žŒ์ด ๋ณ„๋กœ ์—†์–ด์„œ ๊ฒ€์ƒ‰ํ•ด๋„ ์•ˆ๋‚˜์™€์„œ ์ŠฌํŽ๋‹น... ๋‚ด ๋‹ต์ด ์ตœ์ ์ธ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์œผ๋‚˜ ์ผ๋‹จ ํ’€์—ˆ๊ณ  ํ‘ผ ์‚ฌ๋žŒ์ด ๋ณ„๋กœ ์—†์–ด์„œ ๋‚˜๋ผ๋„ ๋ฆฌ๋ทฐ๋ฅผ ์จ๋†”์•ผ์ง€,,๐Ÿ˜‡ ์ผ๋‹จ ๋‚˜๋Š” BFS + ์šฐ์„ ์ˆœ์œ„Q๋กœ ํ’€์—ˆ๋‹ค. ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ  x๋ฅผ key๋กœ y๋ฅผ value๋กœ ๋‘๊ณ , value๋Š” ์šฐ์„ ์ˆœ์œ„Q ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ €์žฅํ–ˆ๋‹ค. (๊ฟˆ์€ ๋” ํฐ ์ˆ˜๋กœ ์ด๋™ํ•˜๊ณ  N์ด ๊ฐ€์žฅ ํฌ๊ธฐ ๋•Œ๋ฌธ์— N์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ๋ฐ”๋กœ ๊ทธ๋งŒ ํ•  ์ˆ˜ ์žˆ๊ฒŒํ•˜๊ธฐ ์œ„ํ•จ) ๊ทธ๋ฆฌ๊ณ  queue์— ํ˜„์žฌ ์œ„์น˜์™€ ํ˜„์žฌ ์ƒํ™ฉ์ด ๋ฐ”๋€ ํšŸ์ˆ˜๋ฅผ ์ €์žฅํ•˜๋ฉฐ BFS๋ฅผ ํ•œ๋‹ค. N์„ ๋งŒ๋‚˜๋ฉด ๊ทธ๋งŒํ•œ๋‹ค. (bfs๋‹ˆ๊นŒ ์ฒ˜์Œ๋งŒ๋‚  ๋•Œ ์ตœ์†Œ) Result import sys from collections import defaultdi..

    [Python] ๋ฐฑ์ค€ 2089

    [Python] ๋ฐฑ์ค€ 2089

    ๋•๋ถ„์— ํŒŒ์ด์ฌ์—์„œ a//b๊ฐ€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์ •ํ™•ํžˆ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋™์ž‘ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. import sys n = int(sys.stdin.readline()) if n == 0: print(0) else: res = [] while n != 0: if n%(-2) == 0: res.append('0') n = n//(-2) else: res.append('1') n = n//(-2) +1 print(''.join(reversed(res)))

    [Python] ๋ฐฑ์ค€ 1442

    [Python] ๋ฐฑ์ค€ 1442

    solution์€ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐ›์€ ์ˆ˜ ์ค‘์—์„œ ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ n-k๊ฐœ ๋” ๋งŒ๋“ค์–ด ์ฃผ๊ณ  ๊ทธ ์ˆ˜๋“ค๋กœ ์ •๋ ฌํ•˜๋ฉด ๋œ๋‹ค. ๋‹จ, ์ •๋ ฌํ•  ๋•Œ ๋ฌธ์ œ์—์„œ ์ค€ ์˜ˆ์ œ์™€ ๊ฐ™์ด 7 3 2 ์ฒ˜๋Ÿผ ์ฃผ์–ด์ง„ ์ˆซ์ž๊ฐ€ ๊ฐ™์€ ์ž๋ฆฌ ์ˆซ์ž๋ผ๋ฉด ์ƒ๊ด€ ์—†์ง€๋งŒ 9 90 990 ๊ณผ ๊ฐ™์€ ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค. ๊ฐ€์žฅ ํฐ ์ˆ˜ ๋ถ€ํ„ฐ ์ •๋ ฌํ•˜๋ฉด 990 90 9 ์ด์ง€๋งŒ ์‹ค์ œ๋กœ ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” 9 990 90 ์™€ ๊ฐ™์ด ์ •๋ ฌ๋˜์–ด์•ผ ํ•œ๋‹ค. ์˜ˆ์ „์— ํ’€์—ˆ๋˜ ๋ฌธ์ œ์—์„œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜๋‹ค! num.sort(key = lambda x: x*10, reverse=True) num์˜ ์ˆซ์ž๋“ค์€ type์ด ๋ฌธ์ž์—ด์ด๋‹ค. ์ด ๋ฌธ์ œ์˜ ์ตœ๋Œ€ ๋ฒ”์œ„๊ฐ€ 1,000,000,000 ์ด๋ฏ€๋กœ ์ˆซ์ž์˜ ์ตœ๋Œ€๊ธธ์ด๊ฐ€ 10์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ธธ์ด 10๋งŒํผ๋งŒ ๋น„๊ตํ•˜๋ฉด ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, 20..

    [Python] ๋ฐฑ์ค€ 6549

    [Python] ๋ฐฑ์ค€ 6549

    ๊ตํ›ˆ : ํ”Œ๋ž˜๋ผ๊ณ  ๊ฒ๋จน์ง€ ๋ง์ž stack์„ ์ด์šฉํ•ด์„œ ํ’€์—ˆ๋‹ค stack ์‚ฝ์ž… : index์™€ ๋†’์ด(h) ์›๋ฆฌ : ํ˜„์žฌ index๋ณด๋‹ค stack์— ์žˆ๋Š” index(๋‚˜๋ณด๋‹ค ์™ผ์ชฝ)์˜ h๊ฐ€ ๋” ํฌ๋ฉด ํ˜„์žฌ index์˜ h๊ฐ’์œผ๋กœ ์™ผ์ชฝ๋„ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”๋ณด๊ธฐ ์—ฌ๊ธฐ์„œ ์˜ค๋ฅธ์ชฝ์˜ ๋†’์ด(2) ๋กœ ์™ผ์ชฝ์„ ํฌํ•จํ•˜์—ฌ ๋„“์ด๊ฐ€ 4๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค. ์ด ์›๋ฆฌ๋ฅผ ์ด์šฉํ•ด stack์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค! import sys while True: #๋งˆ์ง€๋ง‰์— stack์— ์žˆ๋Š” ๊ฐ’์„๋“ค ๋‹ค ๊บผ๋‚ด๊ธฐ ์œ„ํ•ด ๋งˆ์ง€๋ง‰ h๊ฐ’์€ 0 h = list(map(int, sys.stdin.readline().split())) + [0] if h[0] == 0: break n = h[0] stack = [(1,h[1])] res = 0 for i in range(2,n..

    [Python] ๋ฐฑ์ค€ 2606

    [Python] ๋ฐฑ์ค€ 2606

    BFS๋˜๋Š” DFS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ๋ฌธ์ œ๋‹ค. ๋จผ์ €, ์ž…๋ ฅ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋Š” ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. ๋„คํŠธ์›Œํฌ๋Š” ์–‘๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ ์ด๋ฏ€๋กœ ์•„๋ž˜ ์ฝ”๋“œ์™€ ๊ฐ™์ด ๋”•์…”๋„ˆ๋ฆฌ์— ๋‘ ๋ฒˆ ์ž…๋ ฅํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜ํ”„ ๊ตฌํ˜„ net = {} for i in range(n): a, b = map(int, input().split()) if a in net : net[a].append(b) else : net[a] = [b] if b in net : net[b].append(a) else : net[b] = [a] ๊ฐ™์€ ๋„คํŠธ์›Œํฌ ์ƒ์— ์žˆ๋Š” ์ปดํ“จํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ BFS๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. visit์—์„œ 1์„ ๋นผ๋ฉด 1๊ณผ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์ปดํ“จํ„ฐ๋งŒ ๋‚จ๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์— len(visit)-1์„ ๊ฒฐ๊ณผ๋กœ ์ถœ๋ ฅํ–ˆ๋‹ค. ์ „์ฒด์ฝ”๋“œ m = int(input())..