728x90

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 128

ํ•ด์‹œ 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 ์‚ฌ์šฉํ•˜๋ฉด ๋” ํŽธํ•จ ๋ฌธ์ œ ์„ค๋ช… ์ˆ˜๋งŽ์€ ๋งˆ๋ผํ†ค ์„ ์ˆ˜๋“ค์ด ๋งˆ๋ผํ†ค์— ์ฐธ์—ฌํ•˜์˜€์Šต๋‹ˆ..

[RNN] 2. Vanialla RNN, LSTM(Long Short-Term Memory), GRU(Gated Recurrent Unit)

์ˆœ์ฐจ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ˆœํ™˜ ์‹ ๊ฒฝ๋ง์„ ํ†ตํ•ด ์ฒ˜๋ฆฌํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์ž. ๊ธฐ์–ต ์‹œ์Šคํ…œ ๋งŒ์•ฝ ์‹œ๋ฆฌ ๊ฐ™์€ ๊ฐœ์ธ ๋น„์„œ์˜ ๊ฒฝ์šฐ ์˜ฌ๋ฐ”๋ฅธ ๋Œ€๋‹ต์„ ํ•˜๋ ค๋ฉด ์ž…๋ ฅ์„ ๋ฐ›์„ ๋•Œ๋งˆ๋‹ค ๊ทธ ๋‚ด์šฉ์„ ๊ธฐ์–ตํ•ด์•ผ ํ•œ๋‹ค. ๋ฐ˜๋Œ€๋กœ ์ด์ „ ์ž…๋ ฅ์„ ๊ธฐ์–ตํ•˜์ง€ ์•Š๋Š” ์‹œ์Šคํ…œ์€ ๋ฌด๊ธฐ์–ต ์‹œ์Šคํ…œ์ด๋ผ ํ•œ๋‹ค. ์–•์€ ์‹ ๊ฒฝ๋ง(Shallow Neural Network)์ด ๋ฌด๊ธฐ์–ต ์‹œ์Šคํ…œ์˜ ์˜ˆ์‹œ n๋ฒˆ์งธ Time-Step์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์ด์ „ ์ž…๋ ฅ์— ์˜ํ–ฅ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค. ๊ธฐ๋ณธ์ ์ธ ์ˆœํ™˜ ์‹ ๊ฒฝ๋ง (Vanilla Recurrent Network) Vanilla RNN์˜ ๊ตฌ์กฐ๋Š” shallow NN ๊ตฌ์กฐ์— '์ˆœํ™˜(recurrent)'์ด ์ถ”๊ฐ€๋œ ๊ฒƒ์ด๋‹ค. ์ˆœํ™˜: n-1๋ฒˆ์งธ time step์ด n๋ฒˆ์งธ time step์œผ๋กœ ๋‹ค์‹œ ๋Œ์•„์˜ค๋Š” ๊ฒƒ ๊ธฐ์–ต ์‹œ์Šคํ…œ์ด๋ฏ€๋กœ RNN์˜ ์ถœ๋ ฅ์€ ์ด์ „์˜ ๋ชจ๋“  ์ž…๋ ฅ์— ์˜ํ–ฅ..

[RNN] ์ˆœํ™˜ ์‹ ๊ฒฝ๋ง (RNN, Recurrent Neural Network) - 1. ์ˆœ์ฐจ ๋ฐ์ดํ„ฐ

์ˆœํ™˜ ์‹ ๊ฒฝ๋ง์€ ์ž…๋ ฅ์ด๋‚˜ ์ถœ๋ ฅ์„ ์ˆœ์ฐจ ๋ฐ์ดํ„ฐ๋กœ ๋ฝ‘๊ธฐ ์œ„ํ•œ ์‹ ๊ฒฝ๋ง์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ˆœ์ฐจ ๋ฐ์ดํ„ฐ(Sequential Data)์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์ˆœ์ฐจ๋ฐ์ดํ„ฐ๋ž€? ์ˆœ์„œ๊ฐ€ ๋‹ฌ๋ผ์งˆ ๊ฒฝ์šฐ ์˜๋ฏธ๊ฐ€ ์†์ƒ๋˜๋Š” ๋ฐ์ดํ„ฐ, ์ฆ‰ ์ˆœ์„œ๊ฐ€ ์˜๋ฏธ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์‹œ๊ฐ„์  ์˜๋ฏธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ temporal sequence ์ผ์ •ํ•œ ์‹œ๊ฐ„์ฐจ๋ผ๋ฉด time series ex) DNA ์—ผ๊ธฐ ์„œ์—ด(sequential data), ๊ธฐ์˜จ ๋ณ€ํ™”(temporal sequence), ์ƒ˜ํ”Œ๋ง๋œ ์†Œ๋ฆฌ ์‹ ํ˜ธ(time series) โ€ป Resampling (๋ณด๊ฐ„ + ์ƒ˜ํ”Œ๋ง) Temporal Sequence ์‹ ํ˜ธ๋ฅผ Time Series๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ์‹ ํ˜ธ๋ฅผ ๋ณด๊ฐ„(interpolation)ํ•˜๊ณ  ์ด๋ฅผ ๊ท ์ผ ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์œผ๋กœ sampling ํ•œ๋‹ค. ์ˆœ์ฐจ ๋ฐ์ดํ„ฐ์™€ ์‹ฌ์ธต ์‹ ๊ฒฝ๋ง ์ˆœ..

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..

๋งˆํฌ๋‹ค์šด ์—๋””ํ„ฐ, ๋งˆํฌ๋‹ค์šด ํ˜•์‹ html์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ์˜จ๋ผ์ธ ์‚ฌ์ดํŠธ

stackedit.io/ StackEdit – In-browser Markdown editor Stay connected StackEdit can sync your files with Google Drive, Dropbox and GitHub. It can also publish them as blog posts to Blogger, WordPress and Zendesk. You can choose whether to upload in Markdown format, HTML, or to format the output using the Handl stackedit.io ๋งˆํฌ๋‹ค์šด์œผ๋กœ ์ž‘์„ฑํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”๋กœ๋ฐ”๋กœ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ดํŠธ

Note 2021.02.19

[Python] Pandas Dataframe ์ค‘๋ณต ์ œ๊ฑฐ, distinctํ•œ ๊ฐ’ ํ™•์ธ

df.drop_duplicates() df ์ „์ฒด์˜ ์ค‘๋ณต ์ œ๊ฑฐ๋„ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์—ด ๋ผ๋ฆฌ ์ค‘๋ณต ์ œ๊ฑฐ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ์œ„์˜ ๋ฐ์ดํ„ฐ๋Š” pert_iname์ด๋ผ๋Š” ์—ด์— ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ๋“ค์ด ๋งŽ์ด ์žˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ df.drop_duplicates()๋กœ distinctํ•œ ๊ฐ’์€ ๋ช‡ ๊ฐœ์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์›๋ž˜ 13553๊ฐœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ค‘๋ณต๊ฐ’์„ ์ œ์™ธํ•˜๋ฉด 6798๊ฐœ๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ df.value_counts() ๋ฅผ ์ด์šฉํ•˜๋ฉด distinctํ•œ ๊ฐ’์„ ์ฐพ์•„์ฃผ๋ฉด์„œ ๋ช‡ ๊ฐœ๊ฐ€ ์ค‘๋ณต๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

728x90