Python/๐Ÿญ Basic

๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜ [๋ฆฌ์ŠคํŠธ]

jo._.on_ 2023. 12. 19. 20:33

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

 

๐Ÿ“Œ ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜(list comprehension)

 for ๋ฌธ๊ณผ if ๋ฌธ์„ ๋ฆฌ์ŠคํŠธ ๋‚ด๋ถ€์— ์ž‘์„ฑํ•ด ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ค ์ง๊ด€์ ์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹คํ–‰์†๋„๋ฅผ ๋Œ์–ด์˜ฌ๋ ค์ฃผ๋Š” ๊ณ ๋งˆ์šด ๋…€์„์ด๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฐ‘์˜ ์ฝ”๋“œ๋“ค์„ ์ œ์™ธํ•˜๊ณ  counts = [list1.count(i) for i in list1] ๋ผ์ธ์„ ํ•œ ๋ฒˆ ๋“ค์—ฌ๋‹ค๋ณด์ž. 

 

โœณ๏ธ ์˜ˆ์‹œ


counts =  [ list1 ๋ฆฌ์ŠคํŠธ ๋‚ด๋ถ€์˜ i๋ฅผ ๋Œ๋ ค๋ณด์•˜์„ ๋•Œ, i ์˜ ๊ฐœ์ˆ˜๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ]

1) for i in list1

-> list1์˜ ์›์†Œ๋“ค์„ ํ•˜๋‚˜์”ฉ i๋กœ ๋Œ๋ฉด์„œ ๋ณด๊ธฐ.

2) list.count(i)

-> i์˜ ๊ฐœ์ˆ˜๋ฅผ list1์—์„œ ๋Œ๋ฉด์„œ countํ•˜๊ธฐ.

'''์˜ˆ์‹œ) <ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๊ธฐ์ดˆ ๋ฌธ์ œ, 181916๋ฒˆ,  ์ฃผ์‚ฌ์œ„ ๊ฒŒ์ž„3> '''

def solution(a, b, c, d):
    
    list1 = [a, b, c, d]
    counts = [list1.count(i) for i in list1]   # list comprehension ๊ธฐ๋ฒ•. 
    
    """ if max(counts) == 4:
        return a * 1111
    elif max(counts) == 3:
        p = list1[counts.index(3)]
        q = list1[counts.index(1)]
        return (10 * p + q) ** 2
    elif max(counts) == 2:
        if min(counts) == 2:
            return ((a + b) * abs(a - b)) if a == c else ((a + c) * abs(a - c)) 
        else:
            p = list1[counts.index(2)]
            return (a * b * c * d) / p ** 2
    else:
        return min(list1)
    """

 

 

โœณ๏ธ ๋ฆฌ์ŠคํŠธ ๋‚ด๋ถ€์— ์กฐ๊ฑด ์ถ”๊ฐ€ํ•˜๊ธฐ


 ๋ฆฌ์ŠคํŠธ ๋‚ด๋ถ€์— if ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•ด ํŠน์ •๊ฐ’์„ ๊ฑธ๋Ÿฌ๋‚ด๋Š” filtering ์ž‘์—…์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์—ฌ๊ธฐ์„œ ์กฐ์‹ฌํ•  ๊ฑด and์™€ or ์—ฐ์‚ฐ์ž์˜ ์‚ฌ์šฉ, if ์กฐ๊ฑด๋ฌธ์˜ ์œ„์น˜ ๋ฐ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์ด๋‹ค. ์•„๋ž˜๋Š” ๊ทธ ์˜ˆ์‹œ๋กœ, ๋ฌธ์ œ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ ์ ˆํ•˜๊ฒŒ ํ™œ์šฉํ•˜๋ฉด ๋  ๋“ฏํ•˜๋‹ค. ์ž์ฃผ ํ™œ์šฉ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ˆ ์†์— ์ต์„ ๋•Œ๊นŒ์ง€ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋“ค์„ ํ’€์–ด๋ณด๋ฉด์„œ ์ต์ˆ™ํ•ด์ ธ์•ผ๊ฒ ๋‹ค. 

 

ex) ๋ฆฌ์ŠคํŠธ๋ช… = [ํ‘œํ˜„์‹ for ๋ณ€์ˆ˜ in ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๋Œ€์ƒ if ์กฐ๊ฑด๋ฌธ]

[ ( ๋ณ€์ˆ˜๋ฅผ ํ™œ์šฉํ•œ ๊ฐ’ ) for ( ์‚ฌ์šฉํ•  ๋ณ€์ˆ˜ ์ด๋ฆ„ ) in ( ์ˆœํšŒํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’ ) if ( ์กฐ๊ฑด๋ฌธ ) ]

 

 

#๏ธโƒฃ๋‚ด๋ถ€ ์กฐ๊ฑด๋ฌธ์ด ํ•˜๋‚˜์ผ ๋•Œ.

# 1. if ๋ฌธ์ด ํ•œ ๊ฐœ!
arr = [n for n in range(1, 11) if n % 2 == 0]
print(arr)

# [2, 4, 6, 8, 10]

 

 

#๏ธโƒฃ๋‚ด๋ถ€ ์กฐ๊ฑด๋ฌธ์ด ๋‘ ๊ฐœ์ผ ๋•Œ.

# 2. if ๋ฌธ์ด ๋‘ ๊ฐœ!

arr2 = [n for n in range(1, 31) if n % 2 == 0 if n % 3 == 0] 

arr3 = [n for n in range(1, 31) if n % 2 ==0 and n % 3 == 0]
# ๊ฐ™์€ ์กฐ๊ฑด์˜ ์ฝ”๋“œ.
# ๋‹จ, ๋‘ ๊ฐœ์˜ if ๋ฌธ ์‚ฌ์ด์— and ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฑด ๋ถˆ๊ฐ€๋Šฅ!

 

#๏ธโƒฃํ‘œํ˜„์‹ + ์กฐ๊ฑด๋ฌธ + for ๋ฌธ์˜ ํ˜•ํƒœ์ผ ๋•Œ.

# 3. ์กฐ๊ฑด๋ฌธ์ด ๋จผ์ € ๋‚˜์˜ฌ ๋•Œ.
counts = [n if (n < 15 and n > 9) else 0 for n in range(1, 30)] # else ๋ฌธ์€ ๋ฐ˜๋“œ์‹œ ์จ์ฃผ์–ด์•ผ ํ•จ.
print(counts)

# [0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 12, 13, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

# n < 15๋ณด๋‹ค n > 9์ธ ๊ฒฝ์šฐ n ๊ทธ๋Œ€๋กœ, else : 0์œผ๋กœ

 

#๏ธโƒฃ์ค‘์ฒฉ ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜

list1 = [[i for i in range(2)] for j in range(3)]
print(list1)

# [[0, 1], [0, 1], [0, 1]]

์ด์ฐจ์› ๋ฆฌ์ŠคํŠธ์˜ ์ƒ์„ฑ ๊ณผ์ •์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 

 

j = 0, 1, 2  / i = 0, 1

1) j = 0, [i for i in range(2) -> 0, 1]

- [[0, 1]]

 

2) j = 1, [i for i in range(2) -> 0, 1]

- [[0, 1], [0, 1]]

 

3) j = 2, [i for i in range(2) -> 0, 1]

- [[0, 1], [0, 1], [0, 1]]

 

 

๋น„๊ต์  ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ๋ฅผ ๋“ค๊ณ  ์™€ ๊ฐœ๋…์„ ์ •๋ฆฌํ•ด๋ดค๋Š”๋ฐ, ๋ณต์žกํ•œ ์ปดํ”„๋ฆฌํ—จ์…˜์ด ์š”๊ตฌ๋˜๋Š” ๋ฌธ์ œ์ผ ๊ฒฝ์šฐ ๋งŽ์ด ๊นŒ๋‹ค๋กญ๋‹ค;; ๊ทธ๋ฆฌ๊ณ  ์ปดํ”„๋ฆฌํ—จ์…˜์€ ๋น„๋‹จ list์—์„œ๋งŒ ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค. ๋”•์…”๋„ˆ๋ฆฌ์™€ set์—์„œ๋„ ์ ์šฉ์ด ๊ฐ€๋Šฅํ•œ๋ฐ, ๊ทธ ๋‚ด์šฉ์€ ์ถ”๊ฐ€๋กœ ๋‹ค๋ค„๋ณด๋ ค ํ•œ๋‹ค. ์ผ๋‹จ ํ•ด๋‹น ๊ฐœ๋…์„ ์ž๊พธ ์ ์šฉํ•ด๋ณด๋ฉด์„œ ์ต์ˆ™ํ•ด์งˆ ํ•„์š”๊ฐ€ ์žˆ์œผ๋‹ˆ๊นŒ.. ใ…Žใ…Ž