/CodingExercise

๐Ÿ‘ฉโ€๐Ÿ’ป ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€ ๐Ÿ’พ SQL ๋ฌธ์ œ ํ’€์ด

Primary LanguagePython

CodingExercise

Study Algorithm

Python ์š”์•ฝ์ง‘

#1 sorted()์™€ sort()์˜๊ณตํ†ต์ ๊ณผ ์ฐจ์ด์ 

์ฐจ์ด์ 

  1. sorted()์˜ ๊ฒฝ์šฐ, ์›๋ณธ์„ ๋ฐ”๊พธ์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  iterableํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…(ex. ์‚ฌ์ „, ํŠœํ”Œ ๋“ฑ)์—๋„ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.
  2. sort()์˜ ๊ฒฝ์šฐ, ์›๋ณธ ์ž์ฒด๊ฐ€ ๋ฐ”๋€๋‹ค. ํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ ํƒ€์ž…์—๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ณตํ†ต์ 

  1. key=์„ ํ†ตํ•ด ์ •๋ ฌ ๊ธฐ์ค€์„ ์ž„์˜ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. reverse=True/False๋ฅผ ํ†ตํ•ด ์˜ค๋ฆ„์ฐจ์ˆœ/๋‚ด๋ฆผ์ฐจ์ˆœ์„ ํ†ต์ œํ•  ์ˆ˜ ์žˆ๋‹ค.

#2 eval() ํ•จ์ˆ˜

eval()์€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ '์‹'์„ ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ๋ฐ›์•„์™€ ๊ทธ ์‹์˜ ์‹คํ–‰๊ฐ’(๊ฒฐ๊ณผ๊ฐ’)์„ ๋ฆฌํ„ดํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค.
๋‘ ๋ฒˆ์งธ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ํ•จ์ˆ˜๋˜ํ•œ ํฌํ•จํ•˜์—ฌ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. (๊ทธ์™ธ ์ž์„ธํ•œ ์ •๋ณด)

eval('3+5')
>>> 8

eval('abs(-2-8)')
>>> 10

Off the record: ์ด ํ•จ์ˆ˜๋ฅผ ์•Œ๊ฒŒ๋œ ๊ฒƒ์€ 2020 ์นด์นด์˜ค ์ธํ„ด์‹ญ ์ˆ˜์‹์ตœ๋Œ€ํ™” ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ์˜€๋‹ค. ๋‚˜๋Š” ์ˆ˜์‹ ๊ณ„์‚ฐ์„ ์œ„ํ•ด ๋ฌธ์ž์—ด ๋‚ด ์ˆซ์ž๋„ intํ˜•์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ๊ณ , ๊ณ„์‚ฐ์„ ์œ„ํ•ด ํ•จ์ˆ˜๋„ ๋”ฐ๋กœ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ, ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ํ’€์ด์—๋Š” ๊ทธ ๊ณผ์ •์ด ๋ณด์ด์ง€ ์•Š์•„ ์œ ์‹ฌํžˆ ์‚ดํŽด๋ณด๋‹ˆ ๊ทธ๋“ค์€ ์ด ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ•œ ๊ฐ€์ง€ ๋” ๋ฐฐ์› ๋‹ค!

#3 defaultdict()

defaultdict()๋Š” ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” dict ํด๋ผ์Šค์˜ ์„œ๋ธŒ ํด๋ผ์Šค๋ผ๊ณ  ํ•œ๋‹ค.
defaultdict()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ธ์ž๋กœ ์ฃผ์–ด์ง„ ๊ฐ์ฒด์˜ ๊ธฐ๋ณธ๊ฐ’์„ ๋”•์…”๋„ˆ๋ฆฌ ๊ฐ’์˜ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋”•์…”๋„ˆ๋ฆฌ ๋‚ด์— ์—†๋˜ key๋ฅผ ํ˜ธ์ถœํ•ด๋„ ์„ค์ •๋œ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ์ž๋™ ์ดˆ๊ธฐํ™”๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์‹ถ์€ key๊ฐ€ ๋”•์…”๋„ˆ๋ฆฌ์— ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ํ™•์ธํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

# defaultdict()๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ
word="this is example"
dictionary=dict()

for value in word:
	if value in dictionary:
		dictionary[value]+=1
	else:
		dictionary[value]=1

print(dictionary)
>>> {'t': 1, 'h': 1, 'i': 2, 's': 2, ' ': 2, 'e': 2, 'x': 1, 'a': 1, 'm': 1, 'p': 1, 'l': 1}
# defaultdict()๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
from collections import defaultdict # ๋‹จ ๋ฐ˜๋“œ์‹œ import
word="this is example"
dictionary=defaultdict(int)

for value in word:
	dictionary[value] += 1 # ์ดˆ๊ธฐํ™” ์—†์ด ๋ฐ”๋กœ ์—ฐ์‚ฐํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค

print(dictionary)
>>> {'t': 1, 'h': 1, 'i': 2, 's': 2, ' ': 2, 'e': 2, 'x': 1, 'a': 1, 'm': 1, 'p': 1, 'l': 1}

์ด์ฒ˜๋Ÿผ defaultdict()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ํ•œ๊ฒฐ ๊น”๋”ํ•ด์ง€๊ณ , ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ์—๋„ ํŽธ๋ฆฌํ•œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ธ์ž๋กœ list,set๋“ฑ๋„ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋ณต์žกํ•œ ๊ตฌํ˜„๋„ defaultdict()๋ฅผ ์ด์šฉํ•˜๋ฉด ๋”์šฑ ์†์‰ฌ ์งˆ ๊ฒƒ์ด๋ผ๊ณ  ์˜ˆ์ƒ๋œ๋‹ค!