728x90

Python 48

[Programmers] ํ–„๋ฒ„๊ฑฐ ๋งŒ๋“ค๊ธฐ

๋ฌธ์ œ ์„ค๋ช… ๋ฌธ์ œ ํ’€์ด ๊ณผ์ • ingredient์˜ ์›์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ s์— ๋‹ด๊ณ , ๋’ค์—์„œ 4๋ฒˆ์งธ๋ถ€ํ„ฐ ๋งŒ์•ฝ์— [1, 2, 3, 1]๊ณผ ๋™์ผํ•˜๋‹ค๋ฉด answer += 1 ํ•˜๊ธฐ ์ดˆ๋ฐ˜์— ๋„ˆ๋ฌด ๋ณต์žกํ•˜๊ฒŒ ์ƒ๊ฐํ–ˆ๋‹ค. def solution(ingredient): answer = 0 s = [] for i in ingredient: s.append(i) if s[-4:] == [1, 2, 3, 1]: answer += 1 del s[-4:] return answer - coding test url: https://school.programmers.co.kr/learn/courses/30/lessons/133502 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ..

Coding test 2022.12.11

[Programmers] ํ‘ธ๋“œ ํŒŒ์ดํŠธ ๋Œ€ํšŒ

๋ฌธ์ œ ์„ค๋ช… ๋ฌธ์ œ ํ’€์ด ๊ณผ์ • ๋น„๊ต์  ์‰ฝ๊ฒŒ ํ‘ผ ๋ฌธ์ œ index 1๋ฒˆ๋ถ€ํ„ฐ 2๋กœ ๋‚˜๋ˆˆ ๋ชซ๋งŒํผ answer์— string type์œผ๋กœ ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ , 0๊ณผ ๋’ค์ง‘์€ answer๋ฅผ ๋ถ™์—ฌ์ค€ ๋ฐฉ์‹ def solution(food): answer = '' for i in range(1, len(food)): cnt = food[i] // 2 answer += str(i) * cnt ans = answer[-1::-1] answer = answer + '0' + ans return answer ๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด def solution(food): answer = '' for i,n in enumerate(food[1:]): answer += str(i+1) * (n//2) return answer + "0" + answer[::..

Coding test 2022.12.11

[Programmers] ๊ณผ์ผ ์žฅ์ˆ˜

๋ฌธ์ œ ์„ค๋ช… ๋ฌธ์ œ ํ’€์ด ๊ณผ์ • ์ฒซ๋ฒˆ์งธ ํ’€์ด : ์‹œ๊ฐ„ ์ดˆ๊ณผ def solution(k, m, score): answer = 0 score = sorted(score, reverse = True) while len(score) >= m: score_min = min(score[:m]) answer += (score_min * m) score = score[m:] return answer ๋‘๋ฒˆ์งธ ํ’€์ด: ํšจ์œจ์„ฑ์€ ์กฐ๊ธˆ ์ข‹์•„์กŒ์ง€๋งŒ ๊ทธ๋ž˜๋„ ์‹œ๊ฐ„ ์ดˆ๊ณผ def solution(k, m, score): answer = 0 score = sorted(score, reverse = True) while len(score) >= m: score_min = min(score[:m]) answer += (score_min * m) ..

Coding test 2022.12.11

[Programmers] ๊ธฐ์‚ฌ๋‹จ์›์˜ ๋ฌด๊ธฐ

๋ฌธ์ œ ์„ค๋ช… ๋ฌธ์ œ ํ’€์ด ๊ณผ์ • ๋ฌธ์ œ๊ฐ€ ์‰ฝ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ์‚ฌ์‹ค ์•ฝ์ˆ˜๋Š” ํ•ด๋‹น ์ˆ˜๋ฅผ 1๋ถ€ํ„ฐ ํ•ด๋‹น ์ˆ˜๊นŒ์ง€ ๋‚˜๋ˆ ์„œ ๋‚˜๋จธ์ง€๊ฐ€ ์—†์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ•˜๋Š” ๊ฑด๋ฐ ๋ฌธ์ œ๋Š” ์ด์ค‘ for๋ฌธ์„ ์“ฐ๋ฉด ๋ณต์žก๋„๊ฐ€ ์˜ฌ๋ผ๊ฐ€์„œ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ดˆ๊ณผ๋œ๋‹ค... ๊ทธ๋ž˜์„œ ์‹คํŒจ def solution(number, limit, power): answer = 0 for i in range(1, number+1): count = 0 for j in range(1, i+1): if i % j == 0: count += 1 if count limit: answer += power else: answer += a return answer ์‚ฌ์‹ค์ƒ ํ•ด๋‹น ์ˆซ์ž์˜ ์•ฝ์ˆ˜ ์ค‘ ์ตœ๋Œ€ ๊ฐ’์€ ํ•ด๋‹น ์ˆซ์ž ์ œ์™ธ ์ œ๊ณฑ๊ทผ์ธ ๊ฒƒ์„ ์ด์šฉ. ํ•ด๋‹น ์ˆซ์ž์—์„œ ์ œ๊ณฑ๊ทผ๊นŒ์ง€์˜ ์ˆซ์ž๋ฅผ ๋‚˜๋ˆ ์„œ ๊ณ„์‚ฐ์„ ์ค„..

Coding test 2022.12.09

[Programmers] ๋ช…์˜ˆ์˜ ์ „๋‹น (1)

๋ฌธ์ œ ์„ค๋ช… ๋ฌธ์ œ ํ’€์ด ๊ณผ์ • ์ฒ˜์Œ์— ๋ฌธ์ œ๋ฅผ ์ž˜ ์ดํ•ด ๋ชป ํ•ด์„œ ๋ช‡๋ฒˆ์ด๊ณ  ๋ดค๋‹ค. ์ฒ˜์Œ์—๋Š” ๊ฐ€์žฅ ์ž‘์€ ์ ์ˆ˜๋งŒ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋˜๋Š”์ค„ ์•Œ์•˜๋Š”๋ฐ, ๋‚˜์ค‘์— ๋ณด๋‹ˆ ์ƒ์œ„ k๋ฒˆ์งธ์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ผ์ฐจ๊นŒ์ง€ ์Šฌ๋ผ์ด์‹ฑ ํ•œ ํ›„ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ์ฝ”๋“œ๋ฅผ k์ผ์ฐจ ์ดํ•˜์ผ๋•Œ์™€ ์ดˆ๊ณผ์ผ ๋•Œ๋กœ ๋‚˜๋ˆ„์–ด ์งฐ๋‹ค. ๋‚˜์˜์ง€ ์•Š์€ ์ฝ”๋“œ์˜€๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ํšจ์œจ์„ฑ์ด ์•ฝ๊ฐ„ ๋” ์ข‹์•˜์œผ๋ฉด.. ์‹ถ์€ ๋งˆ์Œ def solution(k, score): answer = [] for i in range(1, len(score)+1): if i q๋ฅผ k๊ฐœ ๊ฐฏ์ˆ˜๋งŒํผ ์ƒ์œ„ ์ ์ˆ˜๋งŒ ๋‚จ์•„์žˆ๊ฒŒ ํ•จ. q์—์„œ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ answer๋กœ ๋ฐ˜ํ™˜ def solution(k, score): q = [] answer = [] for s in score: q...

Coding test 2022.12.09

[Algorithm] ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜_3(ํ•˜๋…ธ์ด์˜ ํƒ‘)

05-3 ํ•˜๋…ธ์ด์˜ ํƒ‘ ํ•˜๋…ธ์ด์˜ ํƒ‘ ์•Œ์•„๋ณด๊ธฐ ํ•˜๋…ธ์ด์˜ ํƒ‘(towers of Hanoi): ์ž‘์€ ์›๋ฐ˜์ด ์œ„์—, ํฐ ์›๋ฐ˜์ด ์•„๋ž˜์— ์œ„์น˜ํ•˜๋Š” ๊ทœ์น™์„ ์ง€ํ‚ค๋ฉด์„œ ๊ธฐ๋‘ฅ 3๊ฐœ๋ฅผ ์ด์šฉํ•ด์„œ ์›๋ฐ˜์„ ์˜ฎ๊ธฐ๋Š” ๋ฌธ์ œ ํฌ๊ธฐ๊ฐ€ ๋ชจ๋‘ ๋‹ค๋ฅธ ์›๋ฐ˜์ด ์ฒซ ๋ฒˆ์งธ ๊ธฐ๋‘ฅ์— ์Œ“์—ฌ ์žˆ๋Š” ์ƒํƒœ๋กœ ์‹œ์ž‘ํ•˜์—ฌ ์ด ์ƒํƒœ์—์„œ ๋ชจ๋“  ์›๋ฐ˜์„ ์„ธ ๋ฒˆ์งธ ๊ธฐ๋‘ฅ์— ์ตœ์†Œ ํšŸ์ˆ˜๋กœ ์˜ฎ๊ธฐ๋Š” ๋ฌธ์ œ ์›๋ฐ˜์€ 1๊ฐœ์”ฉ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ์œผ๋ฉฐ ํฐ ์›๋ฐ˜์€ ์ž‘์€ ์›๋ฐ˜ ์œ„์— ์Œ“์„ ์ˆ˜ ์—†๋‹ค๋Š” ๊ทœ์น™์„ ์ง€์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค. [ํ•˜๋…ธ์ด์˜ ํƒ‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜] [ํ•˜๋…ธ์ด์˜ ํƒ‘ ๋ฌธ์ œ ํ’€์ด] ์‹ค์Šต 5-6 ํ•˜๋…ธ์ด์˜ ํƒ‘ ๊ตฌํ˜„ํ•˜๊ธฐ # ํ•˜๋…ธ์ด์˜ ํƒ‘ ๊ตฌํ˜„ํ•˜๊ธฐ def move(no: int, x: int, y: int) -> None: """์›๋ฐ˜ no๊ฐœ๋ฅผ x๊ธฐ๋‘ฅ์—์„œ y๊ธฐ๋‘ฅ์œผ๋กœ ์˜ฎ๊น€""" if no > 1: move(no - 1, x, 6..

Code/Algorithm 2022.12.09

[Algorithm] ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜_2

05-2 ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„์„ ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ 2๊ฐ€์ง€ ๋ถ„์„ ๋ฐฉ๋ฒ• ์‹ค์Šต 5-3 ์ˆœ์ˆ˜ํ•œ ์žฌ๊ท€ ํ•จ์ˆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ # ์ˆœ์ˆ˜ํ•œ ์žฌ๊ท€ ํ•จ์ˆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ # ์ˆœ์ˆ˜ํ•œ(genuinely) ์žฌ์‰ฌ -> ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•˜๋Š” ํ•จ์ˆ˜ def recur(n: int) -> int: """์ˆœ์ˆ˜ํ•œ ์žฌ๊ท€ ํ•จ์ˆ˜ recur์˜ ๊ตฌํ˜„""" if n > 0: recur(n - 1) print(n) recur(n - 2) x = int(input('์ •์ˆซ๊ฐ’์„ ์ž…๋ ฅํ•˜์„ธ์š”.: ')) recur(x) ์ •์ˆซ๊ฐ’์„ ์ž…๋ ฅํ•˜์„ธ์š”.: 4 1 2 3 1 4 1 2 recur() ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜ ์•ˆ์—์„œ ์žฌ๊ท€ ํ˜ธ์ถœ์„ 2๋ฒˆ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ˆœ์ˆ˜ํ•œ(genuinely) ์žฌ๊ท€๋ผ๊ณ  ํ•˜๋Š”๋ฐ ์‹ค์ œ ๋™์ž‘์€ ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ๊ฒฐ๊ณผ์ฒ˜๋Ÿผ ๋งค๊ฐœ๋ณ€์ˆ˜ n์—..

Code/Algorithm 2022.12.09

[Algorithm] ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜_1

05-1 ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ธฐ๋ณธ ์žฌ๊ท€ ์•Œ์•„๋ณด๊ธฐ ์žฌ๊ท€(recursion): ์–ด๋– ํ•œ ์ด๋ฒคํŠธ์—์„œ ์ž๊ธฐ ์ž์‹ ์„ ํฌํ•จํ•˜๊ณ  ๋‹ค์‹œ ์ž๊ธฐ ์ž์‹ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •์˜๋˜๋Š” ๊ฒฝ์šฐ ์žฌ๊ท€์˜ ์˜ˆ: ์ž์—ฐ์ˆ˜์˜ ์ •์˜ 1์€ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ์ž์—ฐ์ˆ˜์˜ ๋ฐ”๋กœ ๋‹ค์Œ ์ˆ˜๋„ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ํŒฉํ† ๋ฆฌ์–ผ ์•Œ์•„๋ณด๊ธฐ ํŒฉํ† ๋ฆฌ์–ผ(factorial): ์–‘์˜ ์ •์ˆ˜๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๊ณฑํ•œ๋‹ค๋Š” ์˜๋ฏธ๋กœ ์ˆœ์ฐจ ๊ณฑ์…ˆ์ด๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์žฌ๊ท€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์ž…๋‹ˆ๋‹ค. ์–‘์˜ ์ •์ˆ˜ n์˜ ํŒจํ† ๋ฆฌ์–ผ(n!)์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒฉํ† ๋ฆฌ์–ผ n!์˜ ์ •์˜(n์€ ์–‘์˜ ์ •์ˆ˜) 0! = 1 n > 0์ด๋ฉด n! = n x (n - 1)! ์‹ค์Šต 5-1 ์–‘์˜ ์ •์ˆ˜ n์˜ ํŒฉํ† ๋ฆฌ์–ผ ๊ตฌํ•˜๊ธฐ # ์–‘์˜ ์ •์ˆ˜ n์˜ ํŒฉํ† ๋ฆฌ์–ผ ๊ตฌํ•˜๊ธฐ def factorial(n: int) -> int: """์–‘์˜ ์ •์ˆ˜ ..

Code/Algorithm 2022.12.06

[Algorithm] ์Šคํƒ๊ณผ ํ_2

04-2 ํ๋ž€? ํ ์•Œ์•„๋ณด๊ธฐ ํ(queue): ์Šคํƒ๊ณผ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์‹œ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ํ๋Š” ๊ฐ€์žฅ ๋จผ์ € ๋„ฃ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ๊บผ๋‚ด๋Š” ์„ ์ž…์„ ์ถœ(FIFO) ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ํ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์ž‘์—…์„ ์ธํ(enqueue), ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด๋Š” ์ž‘์—…์„ ๋””ํ(dequeue)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด๋Š” ์ชฝ์„ ํ”„๋ŸฐํŠธ(front), ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š” ์ชฝ์„ ๋ฆฌ์–ด(rear)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด๋กœ ํ ๊ตฌํ˜„ํ•˜๊ธฐ 24๋ฅผ ์ธํํ•˜๊ธฐ : ๋งจ ๋ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋Š” que[3]์˜ ๋‹ค์Œ ์›์†Œ์ธ que[4]์— 24๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ์ฒ˜๋ฆฌ์˜ ๋ณต์žก๋„๋Š” O(1)์ด๊ณ  ๋น„๊ต์  ์ ์€ ๋น„์šฉ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 19๋ฅผ ๋””ํํ•˜๊ธฐ : que[0]์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” 19๋ฅผ ๊บผ๋‚ด๋ฉด์„œ 2๋ฒˆ์งธ ์ดํ›„์˜ ๋ชจ๋“  ์›์†Œ๋ฅผ ์œ„ ๊ทธ๋ฆผ์˜ c์™€ ๊ฐ™์ด ์•ž์ชฝ์œผ๋กœ ์˜ฎ๊ฒจ์•ผ ํ•ฉ..

Code/Algorithm 2022.12.05
728x90