[TIL_Carrotww] 11 - 22/09/14

์œ ํ˜•์„ยท2022๋…„ 9์›” 14์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
13/138
post-thumbnail

๐Ÿ“Carrotww์˜ ์ฝ”๋”ฉ ๊ธฐ๋ก์žฅ

๐Ÿงฒ ๊นŒ๋จน์ง€ ๋ง๊ธฐ

๐Ÿ” str ๋„ list ์ฒ˜๋Ÿผ str[::-1] ์Šฌ๋ผ์ด์‹ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค

๐Ÿงฒ reverse(), reversed() ๊นŒ๋จน์ง€ ๋ง๊ธฐ

๐Ÿ” reverse() ๋Š” ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๊ณ  list ์ž์ฒด๋ฅผ ๋Œ๋ ค ์ค€๋‹ค.

test = [1, 2, 3]
print(test.reverse()) # None
print(test) # [3, 2, 1]

๐Ÿ” reversed() ๋Š” 'reversed'๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

test = [1, 2, 3]
print(reversed(test)) # <list_reverseiterator object at 0x00000252371E5510>
print(list(reversed(test)) # [3, 2, 1]
for i in reversed(test):
	print(i, end='')
    # 321

๐Ÿ” reversed() ๋Š” list ์ „์šฉ ํ•จ์ˆ˜๊ฐ€ ์•„๋‹ˆ์—ฌ์„œ string ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

test = '๊ฐ€๋‚˜๋‹ค๋ผ๋ผ๋งˆ๋ฐ”์‚ฌ๊ฐ€๋‚˜'
temp = ''.join((reversed(test))) # ๋‚˜๊ฐ€์‚ฌ๋ฐ”๋งˆ๋ผ๋ผ๋‹ค๋‚˜๊ฐ€

๐Ÿงฒ sort(), sorted()

๐Ÿ” reverse ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. sort() ๋Š” list ์ž์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
๐Ÿ” reverse ์˜ต์…˜์„ ์ฃผ๋ฉด ๋‚ด๋ฆผ์ฐจ์ˆœ ๊ฐ€๋Šฅ

test = [3, 5, 1, 2, 6, 5]
test.sort() # [1, 2, 3, 5, 5, 6]
temp = [3, 5, 1, 2, 6, 5]
temp.sort(reverse=True) # [6, 5, 5, 3, 2, 1]

๐Ÿ” sort() ๋Š” ๋ฆฌ์ŠคํŠธ ์ „์šฉ ํ•จ์ˆ˜์ด์ง€๋งŒ sorted() ๋Š” ๋‚ด์žฅ ํ•จ์ˆ˜์ด๋‹ค.

test = 'fsasdfacb'
temp = ''.join((sorted(test))) # aabcdffss

๐Ÿงฒ Queue, Stack, Deque

๐Ÿ” Linked List ๋ฅผ ์™„๋ฒฝํžˆ ์ดํ•ดํ•˜๊ฒŒ ๋˜๋‹ˆ ์œ„ ์ž๋ฃŒ ๊ตฌ์กฐ๋„ ๊นŠ์— ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  ์›๋ฆฌ์™€ ์‚ฌ์šฉ๋ฒ•๋งŒ ์•Œ๊ณ ์žˆ์—ˆ๋˜ ์ „๊ณผ ๋‹ฌ๋ฆฌ ๊ตฌํ˜„๊นŒ์ง€๋„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

๐Ÿ” ๊ตฌํ˜„ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋ชจ๋‘ ์ ์œผ๋ฉด ๊ธธ์–ด์ง€๋ฏ€๋กœ ๊ด€๋ จ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€๋˜ ์ค‘ ์žฌ๋ฐŒ์—ˆ๋˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด ์˜ฌ๋ฆฌ๋ ค๊ณ  ํ•œ๋‹ค.

๐Ÿ”— ๋ฐฑ์ค€ 2493 ํƒ‘ ์ด ๋ฌธ์ œ๋Š” Stack ์„ ์ด์šฉํ•˜์—ฌ ํ’€ ์ˆ˜ ์žˆ๊ณ  ์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผํ•˜์—ฌ ์ฐจ๋ก€์ฐจ๋ก€ ํ’€ ์ˆ˜ ์žˆ๋‹ค.

# for ๋ฌธ์œผ๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ
def get_receiver_top_orders(heights):
    result = [0]
    n = len(heights)
    for i in range(1, n):
        for j in range(-n + i - 1, -n - 1, -1):
            print(i, j)
            if heights[i] < heights[j]:
                result.append(n + j + 1)
                break
        else:
            result.append(0)
    return result
#########################################
# Stack ์œผ๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ
def get_receiver_top_orders2(heights):
    result = []
    n = len(heights)
    while heights:
        temp = heights.pop()
        for i in range(len(heights) - 1, 0, -1):
            if heights[i] > temp:
                result.append(i + 1)
                break
        else:
            result.append(0)
    return list(reversed(result))

๐Ÿ’ก ์žก์„ค

๐Ÿ” ์ž…๋ ฅ ๋ฐ›๋Š” ๋ถ€๋ถ„์€ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์•˜๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•จ์ˆ˜๋งŒ ๊ตฌํ˜„ํ•ด ๋†“์•˜๋‹ค.
๐Ÿ” ์ฒซ ๋ฒˆ์งธ ํ•จ์ˆ˜๋Š” stack์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๊ณ , ์•„๋ž˜ ํ•จ์ˆ˜๋Š” stack์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค.
๐Ÿ” stack ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๋ฌธ์ œ์—์„œ ๋‘ ๋ฒˆ์งธ for ๋ฌธ์€ ์ธ๋ฑ์Šค๋ฅผ ์–ด๋ ต๊ฒŒ ์ ‘๊ทผํ•˜์˜€๋Š”๋ฐ ํ•˜๋‹ค๋ณด๋‹ˆ... ์Œ์ˆ˜ ์ธ๋ฑ์Šค์— ํ‹€์— ๋ฐ•ํ˜€๋ฒ„๋ ค์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.
์Œ์ˆ˜ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋‹ˆ ๋จธ๋ฆฌ๊ฐ€ ๊นจ์งˆ ๊ฒƒ ๊ฐ™์•˜์–ด์„œ ์˜ฌ๋ฆฐ๋‹ค..ใ…Žใ…Ž

๐Ÿงฒ ๋Š๋‚€ ์  and ์žก์„ค2

๐Ÿ” ์‹œ๊ฐ„์„ ๋งŽ์ด ๋“ค์—ฌ์„œ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด๋‹ˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์งœ๋Š” ์‹ค๋ ฅ์ด ์—„์ฒญ ๋Š๋Š”๊ฒŒ ์ฒด๊ฐ์ด ๋œ๋‹ค.
๐Ÿ” ์ „ ์ง์žฅ์—์„œ ๋ฏธ์•ฝํ•œ ์‹ค๋ ฅ์œผ๋กœ ๋งŒ๋“ค์–ด ๋†“๊ณ  ๋‚˜์˜จ ๊ฐ„๋‹จํ•œ ๋ฐฉํ™”๋ฒฝ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํˆด์ด ์žˆ๋Š”๋ฐ ๋™๋ฃŒ๋ถ„๋“ค์ด ์ž˜ ์“ฐ๊ณ ์žˆ๋‹ค๊ณ  ์—ฐ๋ฝ์„ ์ฃผ์…”์„œ ๋ญ๋ž„๊นŒ... ์ฝ”๋”ฉํ•˜๋Š” ๋ง›์ด ๋‚ฌ๋‹ค๊ณ  ํ•ด์•ผํ•˜๋‚˜? ๐Ÿ˜๐Ÿ˜๐Ÿ˜ ๊ธฐ๋ถ„์ด ์•”ํŠผ ์—„์ฒญ ์ข‹์•˜์–ด์„œ ์ ์–ด๋ณธ๋‹ค.
์˜ค๋Š˜ ๋!

0๊ฐœ์˜ ๋Œ“๊ธ€