[TIL_Carrotww] 39 - 22/10/27

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

TIL

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

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

๐Ÿงฒ python Algorithm

๐Ÿ” programmers ์ฒด์œก๋ณต ๊ทธ๋ฆฌ๋“œ ๋ฌธ์ œ์ด๋‹ค.
๋‚˜๋Š” ๋ฌธ์ œ์— ํ•™์ƒ๋ฒˆํ˜ธ๋ฅผ ์ธ๋ฑ์Šค๋กœ, ๊ทธ ๊ฐ’์„ ์ฒด์œก๋ณต์˜ ์ˆ˜๋กœ ํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ๋กœ ํ‘œํ˜„ํ•ด ์ค€ ํ›„ 0 ์ธ ์นœ๊ตฌ๋“ค์„ ์–‘์˜†์ด 2์ธ ์นœ๊ตฌ๋“ค์ด ์žˆ์œผ๋ฉด ๋นŒ๋ฆด ์ˆ˜ ์žˆ๊ฒŒ(์™ผ์ชฝ๋ถ€ํ„ฐ) ์งœ๋ดค๋‹ค.

  • ํ’€์ด 1
def solution(n, lost, reserve):
    temp = [1 for _ in range(n + 2)]
    temp[0] = 0
    temp[-1] = 0
    for lo in lost:
        temp[lo] = 0

    for re in reserve:
        if temp[re] == 0:
            temp[re] = 1
            continue
        temp[re] = 2

    for i in range(1, n + 1):
        if temp[i] == 0:
            if temp[i-1] == 2:
                temp[i-1] -= 1
                temp[i] = 1
            elif temp[i+1] == 2:
                temp[i+1] -= 1
                temp[i] = 1

    return sum([1 for x in temp if x != 0])

๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๋„์ค‘ and or ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ๋ณต์žกํ•˜๊ฒŒ ํ’€์—ˆ์—ˆ๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ์•ˆ ํ’€๋ ค ๋‹ค๋ฅธ ์‹์˜ ํ’€์ด๋กœ๋„ ํ’€์—ˆ๋‹ค.
temp list๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ •๊นŒ์ง€๋Š” ๊ฐ™์ง€๋งŒ ๊ทธ ๋’ค ๋นŒ๋ฆฌ๋Š” ๊ณผ์ •์€ ์กฐ๊ธˆ ๋‹ค๋ฅด๋‹ค
์œ„์˜ ํ’€์ด๋Š” ๋ชจ๋“  ํ•™์ƒ list๋ฅผ ๋„๋Š” ๊ฒƒ์ด์ง€๋งŒ ๋‘ ๋ฒˆ์žฌ ํ’€์ด๋Š” ์žƒ์–ด๋ฒ„๋ฆฐ ํ•™์ƒ๋“ค์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด ์ค€ ํ›„ ํ‘ธ๋Š” ๊ฒƒ์ด๋‹ค.

  • ํ’€์ด 2
def solution(n, lost, reserve):
    temp = [1 for _ in range(n + 2)]
    temp[0] = 0
    temp[-1] = 0
    for lo in lost:
        temp[lo] = 0

    for re in reserve:
        if temp[re] == 0:
            temp[re] = 1
            continue
        temp[re] = 2

    n_lost = [x for x in range(1, n + 1) if temp[x] == 0]

    for lo in n_lost:
        if temp[lo-1] == 2:
            temp[lo-1] = 1
            temp[lo] = 1
        elif temp[lo+1] == 2:
            temp[lo+1] = 1
            temp[lo] = 1

    return sum([1 for x in temp if x != 0])

์ฃผ์–ด์ง„ ํ•™์ƒ์˜ ์ˆ˜๊ฐ€ ์ตœ๋Œ€ 30๋ช… ๊นŒ์ง€์—ฌ์„œ ํ•™์ƒ ๋ฆฌ์ŠคํŠธ ์ „์ฒด๋ฅผ ๋‹ค ๋ˆ๋‹ค ํ•ด๋„ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ๊ธธ์ง€ ์•Š์„ ๊ฒƒ์ด๋ฉฐ ๋ฌธ์ œ ์ž์ฒด๊ฐ€ ์‹œ๊ฐ„๋ณต์žก๋„ ์š”๊ตฌ ์กฐ๊ฑด์ด ๋น ๋“ฏํ•˜์ง€ ์•Š์€ 1๋ ˆ๋ฒจ ๋ฌธ์ œ๋ผ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ํ’€์–ด๋„ ์ƒ๊ด€์—†๋‹ค.

  • ํŒ
    ๋ฌธ์ œ๋ฅผ ์ž˜ ์ฝ์–ด์•ผ ํ•˜๋Š”๋ฐ ์ฒด์œก๋ณต์„ ์žƒ์–ด๋ฒ„๋ฆฐ ํ•™์ƒ๊ณผ ๋” ๊ฐ€์ ธ์˜จ ํ•™์ƒ์ด ๊ฒน์น  ์ˆ˜ ์žˆ์–ด ๊ทธ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

  • ์žก๋‹ด
    ๊ฒ€์ƒ‰์„ ํ•ด๋ณด๋‹ˆ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ remove๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ ๊ฒน์น˜๊ฑฐ๋‚˜ ๋นŒ๋ ค์ค€ ํ•™์ƒ์„ ๋นผ ์ฃผ์—ˆ๋Š”๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๋ณด๋‹ˆ remove() ํ•จ์ˆ˜๋Š” ๋˜๋„๋ก ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€ ์•Š์•„์„œ ์ œ๊ฑฐ ํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ list, dict ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์–ด ํ‘œํ˜„ํ•˜๋Š” ํŽธ์ด๋‹ค. ๊ทธ๊ฒŒ ์ข‹๋‹ค.

๐Ÿงฒ python Algorithm

๐Ÿ” programmers [1์ฐจ] ๋น„๋ฐ€์ง€๋„ ์นด์นด์˜ค 2018 ๋…„๋„ ๋ฌธ์ œ๋ผ์„œ ์‰ฌ์šด ๋ฌธ์ œ์ด๋‹ค.

  • ํ’€์ด
def solution(n, arr1, arr2):
    result = []

    for ar1, ar2 in zip(arr1, arr2):
        line1 = format(ar1, 'b')
        line2 = format(ar2, 'b')
        temp = int(line1) + int(line2)
        temp = str(temp)
        while len(temp) != n:
            temp = '0' + temp
        temp = temp.replace('0', ' ')
        temp = temp.replace('1', '#')
        temp = temp.replace('2', '#')
        result.append(temp)
    return result

๐Ÿงฒ python Algorithm ๋ชป ํ‘ผ ํ’€์ด

๐Ÿ” ๋‚ด velog algorithm ๊ฐ€์žฅ ํฐ ์ˆ˜ ์™œ ์•ˆ๋์—ˆ๋Š”์ง€ ์•Œ์•˜๋‹ค.
21 ๊ณผ 212 ๋ฅผ ๋น„๊ตํ•˜์˜€์„๋•Œ๋Š” 2122, 2122 ๋˜‘๊ฐ™์ด ๋‚˜์™€ ๋žœ๋คํ•˜๊ฒŒ ๋ฐฐ์น˜๋˜๋ฏ€๋กœ ํ‹€๋ฆฐ ๋ฐฉ๋ฒ•์ด์˜€๋‹ค. ๋‚ด ๋ฐฉ์‹๋Œ€๋กœ ํ’€๋ ค๋ฉด 212๋Š” 212212 ๋กœ 21์€ 212121 ๋กœ ๋ฐ”๊พธ์–ด ๊ณ„์‚ฐ์„ ํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š”๋ฐ ๊ทธ๋Ÿผ 1 ~ 1000 ๊นŒ์ง€ ์š”์†Œ๊ฐ€ ๋“ค์–ด์˜ค๋ฏ€๋กœ ์ตœ๋Œ€ 8์ž๋ฆฌ๊นŒ์ง€ ๋งŒ๋“ค๊ณ  ๋“ค์–ด์˜จ ์ˆซ์ž์˜ ํฌ๊ธฐ๋งŒํผ ๋ฐ˜๋ณตํ•ด์ฃผ์–ด์•ผ ํ•˜๋ฏ€๋กœ ๋ฌด์‹œ...
์ˆซ์ž ๋ฌธ์ž์—ด์„ ์„œ๋กœ ๋น„๊ตํ• ๋•Œ๋Š” ์•„์Šคํ‚ค ์ฝ”๋“œ๋กœ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์„ ์•Œ์•„๊ฐ„ ๊ฒƒ๋งŒ ํ•ด๋„ ์ข‹์€ ์„ฑ๊ณผ๋‹ค.

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