MUKER_DEV with iOS

[swift] ๋ฐฑ์ค€ - 11866๋ฒˆ: ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ 0 ๋ณธ๋ฌธ

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

[swift] ๋ฐฑ์ค€ - 11866๋ฒˆ: ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ 0

MUKER 2023. 2. 6. 20:16
 

11866๋ฒˆ: ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ 0

์ฒซ์งธ ์ค„์— N๊ณผ K๊ฐ€ ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ K ≤ N ≤ 1,000)

www.acmicpc.net

๋ฌธ์ œ ํ‘ธ๋Š” ๋ฐ ์žˆ์–ด ๋„์›€์ด ๋˜๋„๋ก ๋‚˜์˜ ํ’€์ด์™€ ๊ฐœ์„ ๋œ ํ’€์ด๋ฅผ ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค.
๋˜ํ•œ ํ’€์ด ํ›„ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ๋ณด๊ณ  ์ฐธ๊ณ ํ• ๋งŒํ•œ ํ’€์ด๋„ ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค.

- ๋ฌธ์ œ์— ๋”ฐ๋ผ ๋‚˜์˜ ํ’€์ด๋งŒ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
- ํ•ด๋‹น ํ’€์ด๋“ค์€ ํ’€์ด ์ค‘ ํ•˜๋‚˜์ผ ๋ฟ ์ตœ์„ ์˜ ํ’€์ด๋Š” ์•„๋‹ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 


 

๋ฌธ์ œ ์„ค๋ช…

 


 

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

let input = readLine()!.split(separator: " ").map { Int($0)! }
var arr = Array((1...input[0]))
var result = [Int]()
var now = 0
while !arr.isEmpty {
    now = (now + input[1]-1) % arr.count
    result.append(arr[now])
    arr.remove(at: now)
}
print("<", terminator: "")
print("\(result[0])", terminator: "")
for i in result[1..<result.count] { print(", \(i)", terminator: "") }
print(">")

 

์˜ˆ์ œ ๋ฌธ์ œ 1์„ ์˜ˆ๋กœ ๋“ค์–ด

 

์ž…๋ ฅ ๊ฐ’ N๋งŒํผ์˜ ๊ธธ์ด์˜ arr ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ 

(N์ด 7์ด๋ผ๋ฉด [1,2,3,4,5,6,7]์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.)

 

๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ

์ž…๋ ฅ ๊ฐ’ K๋งŒํผ ๋–จ์–ด์ง„ ๊ฑฐ๋ฆฌ์˜ ๊ฐ’์„ ์ถ”์ถœ ๋ฐ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.

 

K๊ฐ€ 3์ด๋ผ๋ฉด

N์˜ 3๋ฒˆ์งธ ๊ฐ’

์ฆ‰, ์ธ๋ฑ์Šค 0 + 2์ธ

N[2]์— 3์„ ์ถ”์ถœํ•˜์—ฌ

๋นˆ๋ฐฐ์—ด์„ ํ•˜๋‚˜ ์ƒ์„ฑํ•˜์—ฌ ๋‹ด์•„์ค๋‹ˆ๋‹ค.

 

์ถ”์ถœ๋œ ์ธ๋ฑ์Šค ์ฆ‰ ์ •์ˆ˜ 2๋ฅผ now๋ณ€์ˆ˜์— ์ €์žฅํ•˜๊ณ 

์ถ”์ถœ๋œ N[2]๋Š” ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

 

while๋ฌธ์€ arr๋ฐฐ์—ด์ด ๋น„์–ด์งˆ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

 

๋‹ค์‹œ ๊ธฐ์–ตํ•ด๋†จ๋˜ ์ธ๋ฑ์Šค N[2]๋ถ€ํ„ฐ + 2๋งŒํผ

N[4]๋ฅผ ์ถ”์ถœ ๋ฐ ์ œ๊ฑฐํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๋ฐฐ์—ด์„ ๋ฌด์‚ฌํžˆ ์ˆœํšŒํ•˜๊ธฐ ์œ„ํ•ด

% arr.count๋ฅผ ํ•˜์—ฌ

๋ฐฐ์—ด ์ธ๋ฑ์Šค๊ฐ€ ์ดˆ๊ณผํ•˜๋ฉด 0๋ถ€ํ„ฐ ๋‹ค์‹œ ์ˆœํšŒํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.

 


 

๊ฐœ์„ ๋œ ํ’€์ด

print("<", terminator: "")
print("\(result[0])", terminator: "")
for i in result[1..<result.count] { print(", \(i)", terminator: "") }
print(">")

 

<3, 6, 2, 7, 5, 1, 4>

์ด๋Ÿฐ ์ถœ๋ ฅ ๊ฐ’์„ ๋ฝ‘๊ธฐ ์œ„ํ•ด

์œ„์˜ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ์—ˆ๋Š”๋ฐ

 

print("<" + result.map { String($0) }.joined(separator: ", ") + ">" )

 

ํ•ด๋‹น ์ฝ”๋“œ๋กœ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.