Python

[python ์•Œ๊ณ ๋ฆฌ์ฆ˜] 2์ฃผ์ฐจ

hsooooo 2022. 2. 28. 11:14

๐ŸŸฉ ์ค‘๋ณต๋˜์ง€ ์•Š์€ ์›์†Œ๋ฅผ ์–ป๊ณ ์ž ํ•  ๋•Œ, ์ง‘ํ•ฉ์˜ ์„ฑ์งˆ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋‚ด์žฅํ•จ์ˆ˜์ธ set์„ ์‚ฌ์šฉ!

https://aigong.tistory.com/30

 

๐ŸŸฉ .sort(key = len) ์€ ๋ฌธ์ž์—ด์„ ๊ธธ์ด ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์ค€๋‹ค.

 

๐ŸŸฉ '\n' ๋˜์ง€์•Š๊ณ  ์ถœ๋ ฅ์€ for๋ฌธ์—์„œ print(j, end='') ์„ ์‚ฌ์šฉํ•œ๋‹ค.

๐ŸŸฉ ์ž๋ฃŒํ˜• ๋‚ด์—์„œ ์ตœ์†Œ๊ฐ’์€ min(์ž๋ฃŒํ˜• ์ด๋ฆ„), ์ตœ๋Œ€๊ฐ’์€ max(์ž๋ฃŒํ˜• ์ด๋ฆ„)๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์˜ index๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ž๋ฃŒํ˜•.index(max or min)๋กœ ๊ฐ์‹ธ๋ฉด ๋œ๋‹ค.

 

๐ŸŸฉ ํˆฌํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜(https://www.youtube.com/watch?time_continue=505&v=ttLRltNDiCo&feature=emb_title)

๋ฆฌ์ŠคํŠธ์— ์ˆœ์ฐจ์ ์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•  ๋•Œ, ๋‘ ๊ฐœ์˜ ์ ์˜ ์œ„์น˜๋ฅผ ๊ธฐ๋กํ•˜๋ฉด์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜.

๋ฆฌ์ŠคํŠธ์— ๋‹ด๊ธด ๋ฐ์ดํ„ฐ์— ์ˆœ์ฐจ์ ์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•  ๋•Œ, ์‹œ์ž‘์ ๊ณผ ๋์  2๊ฐœ์˜ ์ ์œผ๋กœ ์ ‘๊ทผํ•  ๋ฐ์ดํ„ฐ์˜ ๋ฒ”์œ„๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

ex. ํŠน์ •ํ•œ ํ•ฉ์„ ๊ฐ€์ง€๋Š” ๋ถ€๋ถ„ ์—ฐ์† ์ˆ˜์—ด ์ฐพ๊ธฐ

n = 5 # ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜ n
m = 5 # ์ฐพ๊ณ ์ž ํ•˜๋Š” ๋ถ€๋ถ„ํ•ฉ m
data = [1, 2, 3, 2, 5] # ์ „์ฒด ์ˆ˜์—ด

count = 0
interval_sum = 0
end = 0

# start๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ์ฆ๊ฐ€์‹œํ‚ค๋ฉฐ ๋ฐ˜๋ณต
for start in range(n):
	# end๋ฅผ ๊ฐ€๋Šฅํ•œ ๋งŒํผ ์ด๋™
    while interval_sum < m and end < n:
    	interval_sum += data[end]
        end += 1
    # ๋ถ€๋ถ„ํ•ฉ์ด m์ผ ๋•Œ ์นด์šดํŠธ ์ฆ๊ฐ€
    if interval_sum == m:
    	count += 1
    interval_sum -= data[start]
print(count)

 

๐ŸŸฉ sorted(์ž๋ฃŒํ˜•, key=lamda x: x[1])

์ •๋ ฌ๋œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์›ํ˜•์„ ๋ณ€ํ˜•์‹œํ‚ค์ง€ ์•Š๋Š”๋‹ค.

๋งค๊ฒŒ๋ณ€์ˆ˜ key๋Š” ์ •๋ ฌ์„ ๋ชฉ์ ์œผ๋กœ ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๊ฐ’์œผ๋กœ ๋„ฃ๋Š”๋‹ค. ์ด๋•Œ, lamda๋ฅผ ๋„˜๊ฒจ์ฃผ๋ฉด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์ •ํ•ด์ง„๋‹ค.

a =[(1, 2), (5, 1), (0, 1), (5, 2), (3, 0)]

c = sorted(a, key = lamda x : x[0])
c = [(0, 1), (1, 2), (3, 0), (5, 1), (5, 2)]

d = sorted(a, key = lamda x : x[1])
d = [(3, 0), (5, 1), (0, 1), (1, 2), (5, 2)]

 

 

๋Œ“๊ธ€์ˆ˜0