• [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ธฐ์ดˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ Day3

    2024. 2. 10.

    by. @leeeun

    Day3

     

     

    ๋ฌธ์ž์—ด ์„ž๊ธฐ

     

    ๋ฌธ์ œ

    ๊ธธ์ด๊ฐ€ ๊ฐ™์€ ๋‘ ๋ฌธ์ž์—ด str1๊ณผ str2๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.
    
    ๋‘ ๋ฌธ์ž์—ด์˜ ๊ฐ ๋ฌธ์ž๊ฐ€ ์•ž์—์„œ๋ถ€ํ„ฐ ์„œ๋กœ ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉด์„œ ํ•œ ๋ฒˆ์”ฉ ๋“ฑ์žฅํ•˜๋Š” ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค์–ด return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.
    

     

    ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

     

     

    ํ’€์ด

    def solution(str1, str2):
        new_list=[]
        a=list(str1)
        b=list(str2)
        for i in range(len(str1)):
            new_list.append(a[i])
            new_list.append(b[i])
        return ''.join(new_list)
    
    • ์ƒ๊ฐ๋ณด๋‹ค.. ์˜ค๋ž˜ ๊ฑธ๋ ธ๋˜ ๋ฌธ์ œ
    • ๋น„ํšจ์œจ์ ์ธ ๋ฐฉ์‹์ด์—ˆ์ง€๋งŒ list()ํ•จ์ˆ˜๋กœ ๋ฌธ์ž์—ด์„ ํ•˜๋‚˜ํ•˜๋‚˜ ์ชผ๊ฐœ๊ณ , ๋‹ค์‹œ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ aํ•˜๋‚˜ bํ•˜๋‚˜์”ฉ ๋„ฃ์–ด์ค€ ํ›„ ์ด๊ฑฐ๋ฅผ join() ํ•จ์ˆ˜๋กœ ๋‹ค์‹œ ํ•ฉ์ณ์ค€๋‹ค๋Š” ์ƒ๊ฐ์œผ๋กœ ์ ‘๊ทผํ–ˆ๋‹ค.
    • ๋ฌธ์ž์—ด์„ ํ•˜๋‚˜์”ฉ ์ชผ๊ฐค๋•Œ๋Š” ๋ฆฌ์ŠคํŠธ ํ•จ์ˆ˜, ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฌธ์ž์—ด๋กœ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์ค„๋•Œ๋Š” ์กฐ์ธ ํ•จ์ˆ˜! ๊ฑฐ๊พธ๋กœ์ธ ๋Š๋‚Œ์œผ๋กœ ๊ธฐ์–ตํ•˜์ž.
    • ๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด๋ฅผ ๋ณด๋‹ˆ๊นŒ ๊ตณ์ด ๋ฆฌ์ŠคํŠธ๋กœ ์ชผ๊ฐค ํ•„์š”๊ฐ€ ์—†์—ˆ๋‹ค… ๋นˆ ๋ฌธ์ž์—ด์„ ๋งŒ๋“  ํ›„ ๋ฌธ์ž์—ด ์ธ๋ฑ์‹ฑ์œผ๋กœ ๋ฐ”๋กœ ๋„ฃ์–ด์ฃผ์ž!

     

    ๋ฆฌ๋งˆ์ธ๋“œ

    • list() : ๋ฌธ์ž์—ด์„ ํ•˜๋‚˜ํ•˜๋‚˜์”ฉ ์ž๋ฅด๊ณ  ์‹ถ์„ ๋•Œ
    • ‘’.join(list): ๋ฆฌ์ŠคํŠธ ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ ๋ฌธ์ž์—ด๋กœ ํ•ฉ์น˜๊ณ  ์‹ถ์„ ๋•Œ
    • ๋ฌธ์ž์—ด๋„ ์ธ๋ฑ์‹ฑ ๊ฐ€๋Šฅ
    • string[start:end:step]: start ์ธ๋ฑ์Šค๋ถ€ํ„ฐ end-1 ์ธ๋ฑ์Šค ๋ฒ”์œ„ ๋‚ด์— step๊ฐ„๊ฒฉ์œผ๋กœ ์Šฌ๋ผ์ด์‹ฑ
    • range() : ๋ฒ”์œ„๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ
      • for i in range(5)

     

    ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

    IndexError: list index out of range

    • ๋ฐ”๋ณด๊ฐ™์ด range๋ฒ”์œ„๋ฅผ 5๋กœ ํ•ด์•ผ๋˜๋Š”๋ฐ 10์œผ๋กœ ์žก์•˜๋‹ค.

     

    ๋‹ค๋ฅธ์‚ฌ๋žŒ ํ’€์ด

    #1 
    def solution(str1, str2):
        answer = ''
        for i in range(len(str1)):
            answer = answer + str1[i] + str2[i]
        return answer
    
    #2
    def solution(str1, str2):
        return ''.join(i+j for i,j in zip(str1,str2))
    
    • zip(iterable) : ์ˆœํšŒ ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋ฅผ ์ธ์ž๋กœ ๋ฐ›๊ณ  ๊ฐ ์ž๋ฃŒํ˜•์˜ ๊ฐ๊ฐ์˜ ์š”์†Œ๋ฅผ ๋‚˜๋ˆˆํ›„ ์ธ๋ฑ์Šค๋ผ๋ฆฌ ์ž˜๋ผ์„œ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜ํ•ด์ค€๋‹ค.
      • iterable ์ž๋ฃŒํ˜•:
    • str1[i] ํ•ด์„œ ๋ฆฌ์ŠคํŠธ์— ๋ฐ”๋กœ ๋„ฃ์–ด์ค„ ์ˆ˜ ์žˆ๋‹ค. ๊ตณ์ด ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ”๊พธ๋Š” ํ•จ์ˆ˜ ์•ˆ ์จ๋„ ๋œ๋‹ค.

    ๋ฌธ์ž ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ

     

    ๋ฌธ์ œ

    ๋ฌธ์ž๋“ค์ด ๋‹ด๊ฒจ์žˆ๋Š” ๋ฐฐ์—ด arr๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. 
    arr์˜ ์›์†Œ๋“ค์„ ์ˆœ์„œ๋Œ€๋กœ ์ด์–ด ๋ถ™์ธ ๋ฌธ์ž์—ด์„ return ํ•˜๋Š” solutionํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”.
    

     

    ํ’€์ด

    def solution(arr):
        answer=''
        for i in arr:
            answer+=i
        return answer
    

     

     

    ๋ฆฌ๋งˆ์ธ๋“œ

    • ์™œ ์ž๊พธ joinํ•จ์ˆ˜๋ฅผ ๋ชป ๋– ์˜ฌ๋ฆด๊นŒ! ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฌธ์ž์—ด๋กœ ํ•ฉ์น ๋•Œ๋Š” ๊ผญ joinํ•จ์ˆ˜๋ฅผ ๋– ์˜ฌ๋ฆฌ์ž..

     

    ๋‹ค๋ฅธ์‚ฌ๋žŒ ํ’€์ด

    def solution(arr):
        return ''.join(arr)
    

     


    ๋ฌธ์ž์—ด ๊ณฑํ•˜๊ธฐ

     

    ๋ฌธ์ œ

    ๋ฌธ์ž์—ด my_string๊ณผ ์ •์ˆ˜ k๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, 
    my_string์„ k๋ฒˆ ๋ฐ˜๋ณตํ•œ ๋ฌธ์ž์—ด์„ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”.
    

     

    ํ’€์ด

    def solution(my_string, k):
        return my_string*k
    

     


    ๋” ํฌ๊ฒŒ ํ•ฉ์น˜๊ธฐ

     

    ๋ฌธ์ œ

    ์—ฐ์‚ฐ ⊕๋Š” ๋‘ ์ •์ˆ˜์— ๋Œ€ํ•œ ์—ฐ์‚ฐ์œผ๋กœ ๋‘ ์ •์ˆ˜๋ฅผ ๋ถ™์—ฌ์„œ ์“ด ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    
    12 ⊕ 3 = 123
    3 ⊕ 12 = 312
    ์–‘์˜ ์ •์ˆ˜ a์™€ b๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, a ⊕ b์™€ b ⊕ a ์ค‘ ๋” ํฐ ๊ฐ’์„ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.
    
    ๋‹จ, a ⊕ b์™€ b ⊕ a๊ฐ€ ๊ฐ™๋‹ค๋ฉด a ⊕ b๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.
    

     

    ํ’€์ด

    def solution(a, b):
        x=int(str(a)+str(b))
        y=int(str(b)+str(a))
        if x>y:
            return x
        elif x<y:
            return y
        else: return x
    

     

    ๋‹ค๋ฅธ์‚ฌ๋žŒ ํ’€์ด

    #1 
    def solution(a, b):
        return int(max(f"{a}{b}", f"{b}{a}"))
    
    #2
    def solution(a, b):
        a, b = str(a), str(b)
        return int(max(a+b, b+a))
    

     

    ๋ฆฌ๋งˆ์ธ๋“œ

    • ์ •์ˆ˜๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜์‹œํ‚ค๋Š” ํ•จ์ˆ˜๋Š” string()์ด ์•„๋‹ˆ๋ผ str()์ด๋‹ค..
    • ํŒŒ์ด์ฌ์— ๋‚ด์žฅํ•จ์ˆ˜ ๋„ˆ๋ฌด ๋งŽ๋‹ค. max(a,b)๋Š” a์™€ b์ค‘์— ๋” ํฐ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ด์ฃผ๊ณ , ๋ฌธ์ž์—ด์—๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.
    • f์ŠคํŠธ๋ง์„ ์ž๊พธ ๊นŒ๋จน๋Š”๋‹ค.
    • ๊ทผ๋ฐ 1๋ฒˆ์ฒ˜๋Ÿผ ํ’€๋ฉด a,b๊ฐ’์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ€ ์ž˜๋ชป ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. f"{a}{b}"์™€ f"{b}{a} ์— ๊ฐ๊ฐ int๋ฅผ ์”Œ์›Œ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

    ๋‘ ์ˆ˜์˜ ์—ฐ์‚ฐ๊ฐ’ ๋น„๊ตํ•˜๊ธฐ

     

    ๋ฌธ์ œ

    ์—ฐ์‚ฐ ⊕๋Š” ๋‘ ์ •์ˆ˜์— ๋Œ€ํ•œ ์—ฐ์‚ฐ์œผ๋กœ ๋‘ ์ •์ˆ˜๋ฅผ ๋ถ™์—ฌ์„œ ์“ด ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. 
    ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    
    12 ⊕ 3 = 123
    3 ⊕ 12 = 312
    ์–‘์˜ ์ •์ˆ˜ a์™€ b๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, a ⊕ b์™€ 2 * a * b ์ค‘ ๋” ํฐ ๊ฐ’์„ returnํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.
    
    ๋‹จ, a ⊕ b์™€ 2 * a * b๊ฐ€ ๊ฐ™์œผ๋ฉด a ⊕ b๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.
    

     

    ํ’€์ด

    def solution(a, b):
        if int(str(a)+str(b))<=2*a*b:
            return 2*a*b
        else: return int(str(a)+str(b))
    

     

    ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

    • ์œ„์˜ ๋ฌธ์ œ์—์„œ ๋ฐฐ์šด๊ฑฐ ์ ์šฉํ•ด์„œ ํ…Œ์ŠคํŠธ๋Š” ํ†ต๊ณผํ–ˆ๋Š”๋ฐ,

    • ์ •ํ™•์„ฑ ํ…Œ์ŠคํŠธ์—์„œ๋Š” ํ†ต๊ณผ๋ฅผ ๋ชปํ–ˆ๋‹ค!! ๊ฒฐ๊ณผ์ ์œผ๋กœ ์‹คํŒจ! ๋ ์š”์˜ค์˜น ์ด๋Ÿฐ ๊ฑด ์ฒ˜์Œ์ด๋‹ค
    • ๋ฌธ์ž์—ด์„ ๋Œ€์†Œ๋น„๊ตํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋‚˜๋ณด๋‹ค. a์™€ b์˜ ๊ฐ’์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ€ ์ž˜๋ชป ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๊ฒŒ ์–ด๋–ค ๊ฒฝ์šฐ์ง€? ์ด๊ฑฐ ์ด์œ ๋Š” ์ข€ ๋” ์ƒ๊ฐํ•ด๋ด์•ผ๊ฒ ๋‹ค

     

    ๋‹ค๋ฅธ์‚ฌ๋žŒ ํ’€์ด

    def solution(a, b):
        return max(int(str(a) + str(b)), 2 * a * b)
    

     

     

    ๋Œ“๊ธ€