728x90

๐Ÿ“˜ Programming/Python 14

[Python3] ํŒŒ์ด์ฌ for-else ์‚ฌ์šฉ๋ฒ• ๋ฐ ํ™œ์šฉ ์˜ˆ์ œ (์ œ๊ณฑ๊ทผ ์ฐพ๊ธฐ)

๋ณธ ๋ฌธ์ œ์—์„œ๋Š” ์ž์—ฐ์ˆ˜ 5๊ฐœ๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์ˆซ์ž๋ฅผ ์ฐจ๋ก€๋กœ ๊ณฑํ•ด ๋‚˜์˜จ ์ˆ˜๊ฐ€ ์ œ๊ณฑ์ˆ˜1๊ฐ€ ๋˜๋ฉด found๋ฅผ ์ถœ๋ ฅ ๋ชจ๋“  ์ˆ˜๋ฅผ ๊ณฑํ•ด๋„ ์ œ๊ณฑ์ˆ˜๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์•˜๋‹ค๋ฉด not found๋ฅผ ์ถœ๋ ฅ ์˜ˆ๋ฅผ ๋“ค์–ด, [2, 4, 2, 5, 1]์˜ ์ •์ˆ˜๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ๊ณฑํ•  ๋•Œ, ์ˆ˜๋ฅผ ๊ณฑํ•ด๋‚˜๊ฐ€๋ฉด 2, 8, 16, 80, 80 ์ด ๋‚˜์˜ต๋‹ˆ๋‹ค. 16์€ 4๋ฅผ ์ œ๊ณฑํ•ด ๋‚˜์˜จ ์ˆ˜์ด๋ฏ€๋กœ, ์ด ์ˆ˜๋Š” ์ œ๊ณฑ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ found๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ, [5, 1, 2, 3, 1]์˜ ์ •์ˆ˜๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ๊ณฑํ•  ๋•Œ, ์ˆ˜๋ฅผ ๊ณฑํ•ด๋‚˜๊ฐ€๋ฉด 5, 5, 10, 30, 30 ์ด ๋‚˜์˜ต๋‹ˆ๋‹ค. ์ด์ค‘ ์–ด๋–ค ์ˆ˜๋„ ์ œ๊ณฑ ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ not found๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ด…์‹œ๋‹ค. ์ผ๋ฐ˜์ ์ธ ๊ตฌํ˜„ (for ๋ฐ˜๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ ์‚ฌ์šฉ) res = "not found" tmp = 1 for ..

[Python3] ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ ์„ ์–ธ ๊น”๋”ํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ํ•˜๊ธฐ (list comprehension)

๋ฐฐ์—ด ๋‚ด ํ™€์ˆ˜ ์ œ๊ฑฐ, ์ง์ˆ˜ ์ œ๊ณฑ ์ถœ๋ ฅ ๋ฌธ์ œ ์ •์ˆ˜๋ฅผ ๋‹ด์€ ๋ฆฌ์ŠคํŠธ mylist๋ฅผ ์ž…๋ ฅ๋ฐ›์•„, ์ด ๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ ์ค‘ ์ง์ˆ˜์ธ ๊ฐ’๋งŒ์„ ์ œ๊ณฑํ•ด ๋‹ด์€ ์ƒˆ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” solutionํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, [3, 2, 6, 7]์ด ์ฃผ์–ด์ง„ ๊ฒฝ์šฐ 3์€ ํ™€์ˆ˜์ด๋ฏ€๋กœ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค. 2๋Š” ์ง์ˆ˜์ด๋ฏ€๋กœ ์ œ๊ณฑํ•ฉ๋‹ˆ๋‹ค. 6์€ ์ง์ˆ˜์ด๋ฏ€๋กœ ์ œ๊ณฑํ•ฉ๋‹ˆ๋‹ค. 7์€ ํ™€์ˆ˜์ด๋ฏ€๋กœ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 2์˜ ์ œ๊ณฑ๊ณผ 6์˜ ์ œ๊ณฑ์„ ๋‹ด์€ ๋ฆฌ์ŠคํŠธ์ธ [4, 36]์„ ๋ฆฌํ„ดํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์œ„์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” solutionํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด๋ณด์ž. mylist = [3, 2, 6, 7] def solution(mylist): answer = [] for i in mylist: if i%2 == 0: answer.append(i**3) # pow(i, 3) re..

[Python3] Collections ํ™œ์šฉ ์˜ˆ์ œ (๋ฌธ์ž์—ด ์ค‘ ๊ฐ€์žฅ ๋งŽ์€ ์•ŒํŒŒ๋ฒณ ์ฐพ๊ธฐ)

๋ฌธ์ž์—ด ์ค‘ ๊ฐ€์žฅ ๋งŽ์€ ์•ŒํŒŒ๋ฒณ ์ฐพ๊ธฐ my_str = input().strip() res = "" arr = [0 for i in range(26)] for i in my_str: # ord(alphabet) : ์•ŒํŒŒ๋ฒณ์„ ์•„์Šคํ‚ค์ฝ”๋“œ ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ ( a -> 97 ) arr[ord(i) - 97] += 1 for i in range(26): if arr[i] == max(arr): res += chr(i+97) print (res) ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์—์„œ ๊ฐ€์žฅ ๋งŽ์€ ์•ŒํŒŒ๋ฒณ์„ ์‚ฌ์ „์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ์˜ˆ์ œ์ด๋‹ค. ordํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ASCII์ฝ”๋“œ ๊ฐ’๊ณผ ์ •์ˆ˜์—ฐ์‚ฐ์œผ๋กœ ๊ตฌํ˜„ํ•œ ์†Œ์Šค์ฝ”๋“œ์ด๋‹ค. ๋ฆฌ์ŠคํŠธ ๋‚ด ์ค‘๋ณต ์›์†Œ์˜ ๊ฐฏ์ˆ˜ ๊ตฌํ•˜๊ธฐ my_list = [1, 2, 3, 4, 5, 6, 7, 8, 7, 9, 1, 2, 3, 3, 5, 2..

[Python3] ์ˆœ์—ด๊ณผ ์กฐํ•ฉ (itertools permutations ์‚ฌ์šฉ๋ฒ•)

์ผ๋ฐ˜์ ์ธ ์ˆœ์—ด๊ณผ ์กฐํ•ฉ (์ €์ˆ˜์ค€) def permute(arr): result = [arr[:]] c = [0] * len(arr) i = 0 while i < len(arr): if c[i] < i: if i % 2 == 0: arr[0], arr[i] = arr[i], arr[0] else: arr[c[i]], arr[i] = arr[i], arr[c[i]] result.append(arr[:]) c[i] += 1 i = 0 else: c[i] = 0 i += 1 return result ์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์€ ์ €์ˆ˜์ค€ ๋ฐฉ์‹์œผ๋กœ C/C++๋“ฑ ์—์„œ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. (STL์ œ์™ธ) ํŒŒ์ด์ฌ์—์„œ๋Š” ๋ณต์žกํ•œ ์ฝ”๋“œ๋ฅผ ์ •์˜ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ˆœ์—ด๊ณผ ์กฐํ•ฉ in Python import iterto..

[Python3] 2์ฐจ์› ๋ฆฌ์ŠคํŠธ๋ฅผ 1์ฐจ์› ๋ฆฌ์ŠคํŠธ๋กœ ๋งŒ๋“ค๊ธฐ (sum, reduce, iterable, numpy, flatten)

my_list = [[1, 2], [3, 4], [5, 6]] ์œ„์™€ ๊ฐ™์€ 2์ฐจ์› ๋ฆฌ์ŠคํŠธ๋ฅผ my_list = [1, 2, 3, 4, 5, 6] ์™€ ๊ฐ™์ด 1์ฐจ์› ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์€ ๋‹ค์–‘ํ•˜๋‹ค. ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ• - ๋ฐ˜๋ณต๋ฌธ ์‚ฌ์šฉ (์ €์ˆ˜์ค€ ์ฝ”๋”ฉ) mylist = [['A', 'B'], ['X', 'Y'], ['1']] def solution(mylist): answer = [] for arr in mylist: for j in range(len(arr)): answer.append(arr[j]) return answer print (solution(mylist)) ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ my_list์›์†Œ๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ๊บผ๋‚ด์–ด answer์— ์ €์žฅํ•œ๋‹ค. ์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์ด ์ผ๋ฐ˜์ ์ธ ์ฝ”๋”ฉ์ด๋‹ค. ๋ฐฉ๋ฒ• 1 - sum ํ•จ์ˆ˜ my..

[Python3] ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜, ๊ณฑ์ง‘ํ•ฉ ๊ตฌํ•˜๊ธฐ (itertools product)

iterable1 = 'ABCD' iterable2 = 'xy' iterable3 = '1234' for i in iterable1: for j in iterable2: for k in iterable3: print(i+j+k) a, b, c, d x, y 1, 2, 3, 4 ์œ„ ์†Œ์Šค์ฝ”๋“œ๋Š” 3๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ ์›์†Œ์— ๋Œ€ํ•ด ๊ณฑ์ง‘ํ•ฉ์„ ๊ตฌํ•˜๋Š” ์†Œ์Šค์ฝ”๋“œ์ด๋‹ค. ax1, ax2, ... , cy3, cy4, ... , dy4 ์œ„์™€ ๊ฐ™์ด ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ๊ตฌํ•˜๋ ค๋ฉด 3์ค‘ ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ํ•ด๊ฒฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•˜์ง€๋งŒ, ํผํฌ๋จผ์Šค ์ธก๋ฉด์—์„œ ์ข‹์ง€ ์•Š์„ ๋ฟ๋”๋Ÿฌ ์†Œ์Šค์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค. import itertools iterable1 = 'ABCD' iterable2 = 'xy' iterable3 = '1234' itertoo..

[Python3] join ํ•จ์ˆ˜ ์‚ฌ์šฉ ์˜ˆ์ œ - ๋ฌธ์ž์—ด ๋ถ™ํžˆ๊ธฐ

['1', '100', '33'] ํ˜•ํƒœ์˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ฃผ์–ด์ง€๋ฉด 110033 ํ˜•ํƒœ๋กœ ์ถœ๋ ฅํ•ด๋ณด์ž mylist = ['1', '100', '33'] answer = "" for i in mylist: answer += i print (answer) ์œ„์™€ ๊ฐ™์ด ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฌธ์ž์—ด answer๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋‚˜์„œ ๋ฌธ์ž์—ด ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ ๋’ค์— ๋ถ™ํ˜”๋‹ค. ํ•˜์ง€๋งŒ, ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ joinํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. mylist = ['1', '100', '33'] answer = ''.join(mylist) print (solution(mylist))

[Python3] ๋‚ด์žฅ ํ•จ์ˆ˜ zip ํ™œ์šฉ ์˜ˆ์ œ - 2์ฐจ์› ๋ฆฌ์ŠคํŠธ ํ–‰๊ณผ ์—ด ๋’ค์ง‘๊ธฐ

zip ํ•จ์ˆ˜ mylist = [ 1,2,3 ] new_list = [ 40, 50, 60 ] for i in zip(mylist, new_list): print (i) (1, 40) (2, 50) (3, 60) ๋ฆฌ์ŠคํŠธ ๋‘ ๊ฐœ๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด ์ถœ๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. zip(์ž๋ฃŒ๊ตฌ์กฐ, ์ž๋ฃŒ๊ตฌ์กฐ) ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฌผ๋ก  ํ•ด๋‹น ์ž๋ฃŒ๊ตฌ์กฐ๋Š” iterable์ด๋ฏ€๋กœ set, list์™€ ๊ฐ™์€ ์ž๋ฃŒ๊ตฌ์กฐ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค. list1 = [1, 2, 3, 4] list2 = [100, 120, 30, 300] list3 = [392, 2, 33, 1] answer = [] for i, j, k in zip(list1, list2, list3): print( i + j + k ) ์œ„์™€ ๊ฐ™์ด 2๊ฐœ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ทธ ์ด์ƒ์˜ ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ๋ฌถ์–ด์„œ๋„ ๊ฐ€..

๋ฐ˜์‘ํ˜•