๋ชฉ๋กAlgorithm (19)

suvera-dev ๐Ÿฅฆ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv3] ์—ฐ์† ํŽ„์Šค ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ - Swift

https://school.programmers.co.kr/learn/courses/30/lessons/161988 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๋Œ€ํ‘œ์ ์ธ DP์œ ํ˜• ๋ฌธ์ œ์ธ๋ฐ, Swift ํ’€์ด๊ฐ€ ๋งŽ์ด ์—†๊ธธ๋ž˜ ์—…๋กœ๋“œ ํ•ฉ๋‹ˆ๋‹ค ! ์ฒ˜์Œ์— dp ๋ฐฐ์—ด์„ 2๊ฐœ ๋งŒ๋“œ๋Š” ์•„์ด๋””์–ด๋ฅผ ๋– ์˜ฌ๋ฆฌ์ง€ ๋ชปํ•ด์„œ ์นœ๊ตฌ์˜ ๋„์›€์„ ๋ฐ›์•„ ํ’€์—ˆ๋‹ค ! ์ƒค๋ผ์›ƒ janechoi.. ๋‹ค์Œ์— ๋น„์Šทํ•œ ๋ฌธ์ œ ๋‚˜์˜ค๋ฉด dp ๋ฐฐ์—ด์„ 2๊ฐœ๋กœ ๋‚˜๋ˆ ์„œ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ™œ์šฉํ•ด์•ผ๊ฒ ๋‹ค :) func solution(_ sequence:[Int]) -> Int64 { // -1๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฐ์—ด var dp1..

Algorithm/CodingTest- Swift 2023. 5. 22. 17:58
Backtracking ๋ฐฑํŠธ๋ž˜ํ‚น ๋Œ€ํ‘œ ๋ฌธ์ œ ) NQueen - Swift๋กœ ๊ตฌํ˜„

NQueen ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š”๋ฐ Swift ํ’€์ด๊ฐ€ ๋งŽ์ด ์—†์–ด์„œ ์˜ฌ๋ ค๋ด…๋‹ˆ๋‹ค. Backtracking ์ด๋ž€?๐Ÿ”ฅ ํ•ด๋ฅผ ์ฐพ๋Š” ๋„์ค‘ ํ•ด๊ฐ€ ์•„๋‹ˆ์–ด์„œ ๋ง‰ํžˆ๋ฉด, ๋˜๋Œ์•„๊ฐ€์„œ ๋‹ค์‹œ ํ•ด๋ฅผ ์ฐพ์•„๊ฐ€๋Š” ๊ธฐ๋ฒ•์„ ๋งํ•ฉ๋‹ˆ๋‹ค. → ์ฆ‰, DFS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ์•ฝ ์กฐ๊ฑด์— ๋งž์ง€ ์•Š์œผ๋ฉด ๊ทธ ์ฆ‰์‹œ ์ค‘๋‹จํ•˜๊ณ  ์ด์ „์œผ๋กœ ๋Œ์•„๊ฐ€ ๋‹ค์‹œ ํ™•์ธํ•˜๋Š” ๊ฒƒ์„ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ์›ํ•˜๋Š” ์กฐ๊ฑด์„ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž…๋‹ˆ๋‹ค. ์ •๋ฆฌํ•˜์ž๋ฉด, ๋ฐฑํŠธ๋ž˜ํ‚น์€ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ์˜ ์ˆ˜ ์ค‘์—์„œ ํŠน์ •ํ•œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ๋งŒ ์‚ดํŽด๋ณด๋Š” ๊ฒƒ ๐Ÿ”ฅ ์ฃผ๋กœ ๋ฌธ์ œ ํ’€์ด์—์„œ๋Š” DFS ๋“ฑ์œผ๋กœ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๊ณผ์ •์—์„œ, ์กฐ๊ฑด๋ฌธ ๋“ฑ์„ ๊ฑธ์–ด ๋‹ต์ด ์ ˆ๋Œ€๋กœ ๋  ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์„ ์ •์˜ํ•˜๊ณ , ๊ทธ๋Ÿฌํ•œ ์ƒํ™ฉ์ผ ๊ฒฝ์šฐ์—๋Š” ํƒ์ƒ‰์„ ์ค‘์ง€์‹œํ‚จ ๋’ค ๊ทธ ์ด์ „์œผ๋กœ ๋Œ์•„๊ฐ€์„œ ๋‹ค์‹œ ๋‹ค๋ฅธ ๊ฒฝ์šฐ๋ฅผ ํƒ์ƒ‰ํ•˜๊ฒŒ๋” ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. N-Queen ๋ฌธ์ œ ..

Algorithm/CodingTest- Swift 2023. 3. 30. 20:43
Algorithm) Dynamic Programming ๋ฌธ์ œ

1. 1๋กœ ๋งŒ๋“ค๊ธฐ ์ •์ˆ˜ X๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ์ •์ˆ˜X์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด 4๊ฐ€์ง€ ์ด๋‹ค. 1) X๊ฐ€ 5๋กœ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง€๋ฉด, 5๋กœ ๋‚˜๋ˆˆ๋‹ค. 2) X๊ฐ€ 3์œผ๋กœ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง€๋ฉด, 3์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค. 3) X๊ฐ€ 2๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด, 2๋กœ ๋‚˜๋ˆˆ๋‹ค. 4) X์—์„œ 1์„ ๋บ€๋‹ค. ์ •์ˆ˜ X๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์—ฐ์‚ฐ 4๊ฐœ๋ฅผ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•ด์„œ 1์„ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค. ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•˜๋Š” ํšŸ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•˜์„ธ์š” ๋ฌธ์ œํ’€์ด ๋‹ต์•ˆ x = int(input()) # DP ํ…Œ์ด๋ธ” ์ดˆ๊ธฐํ™” d = [0] * 30001 # ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ง„ํ–‰ - ๋ณดํ…€์—… for i in range(2, x+1): # ํ˜„์žฌ์˜ ์ˆ˜์—์„œ 1์„ ๋นผ๋Š” ๊ฒฝ์šฐ d[i] = d[i-1] + 1 # ํ˜„์žฌ์˜ ์ˆ˜๊ฐ€ 2๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ๊ฒฝ์šฐ if i % 2 == 0: d[i] =..

Algorithm/CodingTest - Python 2022. 5. 3. 15:30