MUKER_DEV with iOS

[swift] ๋ฐฑ์ค€ - 1074๋ฒˆ: Z ๋ณธ๋ฌธ

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜/BAEKJOON

[swift] ๋ฐฑ์ค€ - 1074๋ฒˆ: Z

MUKER 2023. 4. 6. 21:59
 

1074๋ฒˆ: Z

ํ•œ์ˆ˜๋Š” ํฌ๊ธฐ๊ฐ€ 2N × 2N์ธ 2์ฐจ์› ๋ฐฐ์—ด์„ Z๋ชจ์–‘์œผ๋กœ ํƒ์ƒ‰ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 2×2๋ฐฐ์—ด์„ ์™ผ์ชฝ ์œ„์นธ, ์˜ค๋ฅธ์ชฝ ์œ„์นธ, ์™ผ์ชฝ ์•„๋ž˜์นธ, ์˜ค๋ฅธ์ชฝ ์•„๋ž˜์นธ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฉ๋ฌธํ•˜๋ฉด Z๋ชจ์–‘์ด๋‹ค. N > 1์ธ ๊ฒฝ์šฐ, ๋ฐฐ์—ด์„

www.acmicpc.net


๋‚˜์˜ ํ’€์ด

let inputs = readLine()!.split(separator: " ").map{Int(String($0))!}
var (n, r, c) = (inputs[0], inputs[1], inputs[2])
func solution(_ n: Int, _ r: Int, _ c: Int) -> Int {
    guard n > 0 else { return 0 }
    return 2 * (r % 2) + (c % 2) + 4 * solution(n - 1, r / 2, c / 2)
}
print(solution(n, r, c))

ํ’€์ด ํ‚ค์›Œ๋“œ

๋ถ„ํ• ํƒ์ƒ‰
์žฌ๊ท€ํ•จ์ˆ˜
ํ•ด๋‹น ๋ฌธ์ œ๋Š” ์œ„์น˜์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ํ•ด๋‹น ์œ„์น˜๊ฐ€ 4๋ถ„๋ฉด ์ค‘ ์–ด๋””์— ์œ„์น˜ํ•˜๋Š”์ง€ ํŒŒ์•…ํ•˜์—ฌ
์žฌ๊ท€ ๋งˆ๋‹ค 2์ฐจ์› ๋ฐฐ์—ด์˜ ์ œ๊ณฑ๋งŒํผ 4๋ฅผ ๊ณฑํ•ด์ฃผ๊ณ  ์œ„์น˜๋ฅผ ์ ˆ๋ฐ˜์”ฉ ๋‚˜๋ˆ  ๋น ๋ฅด๊ฒŒ ๋‹ต์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ์‹œ)
์ž…๋ ฅ
n: 3, r: 7, c: 7

solutionํ•จ์ˆ˜์˜ ์žฌ๊ท€ ํ˜•ํƒœ(์Šคํƒ)
0  
2 * (1 % 2) + (1 % 2) + 4 * solution(n - 1, r / 2, c / 2)  2 * 1 + 1 + 4 * 0 = 3
2 * (3 % 2) + (3 % 2) + 4 * solution(n - 1, r / 2, c / 2)  2 * 1 + 1 + 4 * 3 = 15
2 * (7 % 2) + (7 % 2) + 4 * solution(n - 1, r / 2, c / 2)  2 * 1 + 1 + 4 * 15 = 63
return: 63