MUKER_DEV with iOS

[swift] ๋ฐฑ์ค€ - 14714๋ฒˆ: ํ™์‚ผ ๊ฒŒ์ž„ (Easy) ๋ณธ๋ฌธ

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

[swift] ๋ฐฑ์ค€ - 14714๋ฒˆ: ํ™์‚ผ ๊ฒŒ์ž„ (Easy)

MUKER 2023. 5. 18. 21:59
 

14714๋ฒˆ: ํ™์‚ผ ๊ฒŒ์ž„ (Easy)

์ฒซ ๋ฒˆ์งธ ์ค„์— “์งˆ์„œ ์žˆ๋Š” ํ™์‚ผ ๊ฒŒ์ž„”์˜ ์ฐธ๊ฐ€์ž์˜ ์ˆ˜ N(2 ≤ N ≤ 500), ์€ํ•˜๊ฐ€ ๋จผ์ € ์ง€๋ชฉํ•œ ์‚ฌ๋žŒ์˜ ๋ฒˆํ˜ธ A์™€ ๋‘ ๋ฒˆ์งธ๋กœ ์ง€๋ชฉํ•œ ์‚ฌ๋žŒ์˜ ๋ฒˆํ˜ธ B(1 ≤ A, B ≤ N, A ≠ B), ๊ฐ ์ง€๋ชฉ๊ถŒ์˜ ์ง€๋ชฉ ๊ฐ„๊ฒฉ์„ ๋‚˜ํƒ€๋‚ด

www.acmicpc.net

 


์„ฑ๊ณต ํ’€์ด

let input = readLine()!.split(separator: " ").map { Int($0)! }
let N = input[0], A = input[1], B = input[2], DA = input[3], DB = input[4]
var turn = 0
var Aarr = [A]
var Barr = [B]
loop:for i in 1...1000 {
    if i == 1000 {
        print("Evil Galazy")
        break
    }
    if turn == 0 {
        var temp = Set<Int>()
        while !Aarr.isEmpty {
            let num = Aarr.popLast()!
            let plusN = num+DA
            let minusN = num-DA
            
            if plusN > N {
                temp.insert(plusN-N)
            } else { temp.insert(plusN) }
            
            if minusN < 1 {
                temp.insert(minusN+N)
            } else { temp.insert(minusN) }
            
        }
        Aarr = Array(temp)
            for j in Aarr {
                if Barr.contains(j) {
                    print(i)
                    break loop
                }
            }
        turn = 1
    } else {
        var temp = Set<Int>()
        while !Barr.isEmpty {
            let num = Barr.popLast()!
            let plusN = num+DB
            let minusN = num-DB
            
            if plusN > N {
                temp.insert(plusN-N)
            } else { temp.insert(plusN) }
            
            if minusN < 1 {
                temp.insert(minusN+N)
            } else { temp.insert(minusN) }
            
        }
        Barr = Array(temp)
        for j in Barr {
            if Aarr.contains(j) {
                print(i)
                break loop
            }
        }
        turn = 0
    }
}

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

์ •๋ง ์–ด๊ฑฐ์ง€๋กœ ํ‘ผ ๋ฌธ์ œ
ํ™์‚ผ๊ฒŒ์ž„์ด ๋๋‚˜์ง€ ์•Š์„ ๊ฒฝ์šฐ "Evil Galazy"๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•˜๋Š”๋ฐ
๋ฌด์ž‘์ • 1000๋ฒˆ ๋Œ๋ ค์„œ ๋‹ต์ด ์•ˆ๋‚˜์˜ค๋ฉด ๋๋‚˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํŒ๋‹จํ•ด "Evil Galazy"๋ฅผ ์ถœ๋ ฅํ•˜๊ฒŒ ํ–ˆ๋‹ค.
์ „ํ˜€ ์ข‹์€ ํ’€์ด๋ผ๊ณ  ์ƒ๊ฐ๋˜์ง€ ์•Š๊ธฐ์— ๋‹ค๋ฅธ ํ’€์ด๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์—ˆ์ง€๋งŒ
์ฐธ๊ณ ํ• ๋งŒํ•œ ์ฝ”๋“œ๋ฅผ ์ฐพ์ง€ ๋ชปํ•ด.. ๊ทธ๋Œ€๋กœ ํฌ์ŠคํŒ… ํ•ฉ๋‹ˆ๋‹ค.