728x90

Algorithms 21

ํ•ด์‹œ lv2. ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก (๋ฆฌ์ŠคํŠธ vs ํ•ด์‹œ)

์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต, https://programmers.co.kr/learn/challenges ๋ฌธ์ œ ์„ค๋ช… ์ „ํ™”๋ฒˆํ˜ธ๋ถ€์— ์ ํžŒ ์ „ํ™”๋ฒˆํ˜ธ ์ค‘, ํ•œ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ค๋ฅธ ๋ฒˆํ˜ธ์˜ ์ ‘๋‘์–ด์ธ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๊ฒฝ์šฐ, ๊ตฌ์กฐ๋Œ€ ์ „ํ™”๋ฒˆํ˜ธ๋Š” ์˜์„์ด์˜ ์ „ํ™”๋ฒˆํ˜ธ์˜ ์ ‘๋‘์‚ฌ์ž…๋‹ˆ๋‹ค. ๊ตฌ์กฐ๋Œ€ : 119 ๋ฐ•์ค€์˜ : 97 674 223 ์ง€์˜์„ : 11 9552 4421 ์ „ํ™”๋ฒˆํ˜ธ๋ถ€์— ์ ํžŒ ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด phone_book ์ด solution ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์–ด๋–ค ๋ฒˆํ˜ธ๊ฐ€ ๋‹ค๋ฅธ ๋ฒˆํ˜ธ์˜ ์ ‘๋‘์–ด์ธ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์œผ๋ฉด false๋ฅผ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด true๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ ์‚ฌํ•ญ phone_book์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 1,000,000 ์ดํ•˜์ž…..

ํ•ด์‹œ - ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜ (zip ์ž๋ฃŒํ˜•, collections ์ž๋ฃŒํ˜•)

์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต, https://programmers.co.kr/learn/challenges ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ, ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”. programmers.co.kr ํ•ด์‹œ - ๋”•์…”๋„ˆ๋ฆฌ ์ž๋ฃŒํ˜• {'key': 'value', 'key': 'value'} .... user = {'username': 'tyahn', 'first': 'ty', 'last': 'ahn'} for key, value in user.items(): print("key: "+key) print("value: "+value) print("ํ‚ค์— ๋”ฐ๋ฅธ ๊ฐ’: "+user[key]) ๋„ ๋˜๋Š”๋ฐ import collections ์‚ฌ์šฉํ•˜๋ฉด ๋” ํŽธํ•จ ๋ฌธ์ œ ์„ค๋ช… ์ˆ˜๋งŽ์€ ๋งˆ๋ผํ†ค ์„ ์ˆ˜๋“ค์ด ๋งˆ๋ผํ†ค์— ์ฐธ์—ฌํ•˜์˜€์Šต๋‹ˆ..

Lv1. ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ฒŒ์ž„ - list index๋ผ๋ฆฌ ๋น„๊ต, range ๋น„๊ต, ์‚ฌ์šฉ ํ›„ list ์ดˆ๊ธฐํ™”

์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต, https://programmers.co.kr/learn/challenges ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ, ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”. programmers.co.kr ๋ฌธ์ œ ์„ค๋ช… ๊ฒŒ์ž„๊ฐœ๋ฐœ์ž์ธ ์ฃ ๋ฅด๋””๋Š” ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ธฐ๊ณ„๋ฅผ ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„์œผ๋กœ ๋งŒ๋“ค๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ฃ ๋ฅด๋””๋Š” ๊ฒŒ์ž„์˜ ์žฌ๋ฏธ๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ํ™”๋ฉด ๊ตฌ์„ฑ๊ณผ ๊ทœ์น™์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฒŒ์ž„ ๋กœ์ง์— ๋ฐ˜์˜ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ํ™”๋ฉด์€ 1 x 1 ํฌ๊ธฐ์˜ ์นธ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ N x N ํฌ๊ธฐ์˜ ์ •์‚ฌ๊ฐ ๊ฒฉ์ž์ด๋ฉฐ ์œ„์ชฝ์—๋Š” ํฌ๋ ˆ์ธ์ด ์žˆ๊ณ  ์˜ค๋ฅธ์ชฝ์—๋Š” ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. (์œ„ ๊ทธ๋ฆผ์€ 5 x 5 ํฌ๊ธฐ์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค). ๊ฐ ๊ฒฉ์ž ์นธ์—๋Š” ๋‹ค์–‘ํ•œ ์ธํ˜•์ด ๋“ค์–ด ์žˆ์œผ๋ฉฐ ์ธํ˜•์ด ์—†๋Š” ์นธ์€ ๋นˆ์นธ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์ธํ˜•์€ 1 x 1 ํฌ๊ธฐ์˜ ๊ฒฉ์ž ํ•œ ์นธ์„ ์ฐจ์ง€ํ•˜๋ฉฐ ๊ฒฉ์ž..

Lv1. ๋‘ ๊ฐœ ๋ฝ‘์•„์„œ ๋”ํ•˜๊ธฐ - list sort(), sorted(list), ๋ฐฐ์—ด ๊ฐ’๋ผ๋ฆฌ ์กฐํ•ฉ ์ด์ค‘ for๋ฌธ ์‚ฌ์šฉ

์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต, https://programmers.co.kr/learn/challenges ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ, ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”. programmers.co.kr def solution(numbers): answer = [] for i in range(len(numbers)): for j in range(i+1, len(numbers)): result = numbers[i] + numbers[j] if result not in answer: answer.append(result) answer.sort() return answer #### ๋‹ค๋ฅธ ํ’€์ด def solution(numbers): answer = [] for i in range(len(number..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ณต์žก๋„(Complexity)์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ณผ์ •

๋ณต์žก๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ฒ™๋„ ์‹œ๊ฐ„ ๋ณต์žก๋„ vs ๊ณต๊ฐ„ ๋ณต์žก๋„ ์‹œ๊ฐ„ ๋ณต์žก๋„ ํŠน์ •ํ•œ ํฌ๊ธฐ์˜ ์ž…๋ ฅ์— ๋Œ€ํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์–ผ๋งˆ๋‚˜ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š”์ง€ ์˜๋ฏธ ์‹œ๊ฐ„ ๋ณต์žก๋„ ์ธก์ •์œผ๋กœ ํ•„์š”ํ•œ ์—ฐ์‚ฐ์˜ ํšŸ์ˆ˜ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋Š” ๋ณดํ†ต ์‹œ๊ฐ„ ์ œํ•œ์ด ์žˆ์œผ๋ฏ€๋กœ ํšจ์œจ์ ์ธ ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ์ด ํ•„์š”ํ•˜๋‹ค. ๊ณต๊ฐ„ ๋ณต์žก๋„ ํŠน์ •ํ•œ ํฌ๊ธฐ์˜ ์ž…๋ ฅ์— ๋Œ€ํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋ฉ”๋กœ๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•˜๋Š”์ง€ ์˜๋ฏธ ๊ณต๊ฐ„ ๋ณต์žก๋„ ์ธก์ •์œผ๋กœ ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋Š” ๋‹ค์ˆ˜์˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ํšจ์œจ์  ์ฒ˜๋ฆฌ๋ฅผ ์š”๊ตฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๋ถ€๋ถ„ ๋ฆฌ์ŠคํŠธ(๋ฐฐ์—ด)์„ ์‚ฌ์šฉํ•ด์•ผํ•จ. ๋ณต์žก๋„์˜ ํ‘œ๊ธฐ๋ฒ• ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•(Big-O Notation) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ณผ์ • ์ง€๋ฌธ ์ฝ๊ธฐ ๋ฐ ์ปดํ“จํ„ฐ์  ์‚ฌ๊ณ  ์š”๊ตฌ์‚ฌํ•ญ(๋ณต์žก๋„) ๋ถ„์„ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ์•„์ด๋””์–ด ์ฐพ๊ธฐ ์†Œ์Šค์ฝ”๋“œ ์„ค๊ณ„ ๋ฐ..

728x90