MUKER_DEV with iOS

[swift] ๋ฐฑ์ค€ - 2828๋ฒˆ: ์‚ฌ๊ณผ ๋‹ด๊ธฐ ๊ฒŒ์ž„ ๋ณธ๋ฌธ

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

[swift] ๋ฐฑ์ค€ - 2828๋ฒˆ: ์‚ฌ๊ณผ ๋‹ด๊ธฐ ๊ฒŒ์ž„

MUKER 2023. 1. 21. 00:17
 

2828๋ฒˆ: ์‚ฌ๊ณผ ๋‹ด๊ธฐ ๊ฒŒ์ž„

์ƒ๊ทผ์ด๋Š” ์˜ค๋ฝ์‹ค์—์„œ ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ์˜ฎ๊ธฐ๋Š” ์˜ค๋ž˜๋œ ๊ฒŒ์ž„์„ ํ•œ๋‹ค. ์Šคํฌ๋ฆฐ์€ N์นธ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋‹ค. ์Šคํฌ๋ฆฐ์˜ ์•„๋ž˜์ชฝ์—๋Š” M์นธ์„ ์ฐจ์ง€ํ•˜๋Š” ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ์žˆ๋‹ค. (M<N) ํ”Œ๋ ˆ์ด์–ด๋Š” ๊ฒŒ์ž„์„ ํ•˜๋Š” ์ค‘์— ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ

www.acmicpc.net


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

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

 

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

let input = readLine()!.split(separator: " ").map { Int($0)! }
let appleNumber = Int(readLine()!)!
let appleLocation = (0..<appleNumber).map { _ in Int(readLine()!)! }
var basket = (1...input[1]).map { $0 }
var move = 0
for i in appleLocation {
    guard !basket.contains(i) else { continue }
    if basket[basket.endIndex-1] < i {
        let distance = i - basket[basket.endIndex-1]
        basket = basket.map { $0 + distance }
        move += distance
        continue
    } else {
        let distance = basket[basket.startIndex] - i
        basket = basket.map { $0 - distance }
        move += distance
        continue
    }
}
print(move)

 

์ตœ์†Œํ•œ์˜ ์›€์ง์ž„์œผ๋กœ ๋–จ์–ด์ง€๋Š” ์‚ฌ๊ณผ๋ฅผ ๋ฐ”๊ตฌ๋‹ˆ๋กœ ๋ฐ›์•„๋‚ด๋ฉด ๋˜๋Š”๋ฐ์š”.

์ €๋Š” ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

 

๋ฐ”๊ตฌ๋‹ˆ ํฌ๊ธฐ๊ฐ€ 3์ด๋ผ๋ฉด

[1,2,3]์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฑฐ์ฃ 

 

์‚ฌ๊ณผ๊ฐ€ ๋–จ์–ด์ง€๋Š” ์œ„์น˜๊ฐ€

๋ฐ”๊ตฌ๋‹ˆ ์•ˆ์— ํฌํ•จ๋œ๋‹ค๋ฉด

๋ฐ˜๋ณต๋ฌธ์€ guard์— ๊ฑธ๋ ค continue๋ฅผ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๋ฐ”๊ตฌ๋‹ˆ๋ณด๋‹ค ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๊ณณ์—์„œ ์‚ฌ๊ณผ๊ฐ€ ๋–จ์–ด์ง„๋‹ค๋ฉด

(์‚ฌ๊ณผ๊ฐ€ ๋–จ์–ด์ง€๋Š” ์œ„์น˜ - ๋ฐ”๊ตฌ๋‹ˆ์˜ ์ œ์ผ ํฐ ๊ฐ’)๋กœ

์›€์ง์ธ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ณ 

์›€์ง์ธ ํšŸ์ˆ˜๋งŒํผ ๋ฐฐ์—ด ๊ฐ๊ฐ์˜ ๊ฐ’์„ ๋”ํ•ด์ค๋‹ˆ๋‹ค.

 

๋ฐ”๊ตฌ๋‹ˆ๋ณด๋‹ค ์™ผ์ชฝ์— ์žˆ๋Š” ๊ณณ์—์„œ ์‚ฌ๊ณผ๊ฐ€ ๋–จ์–ด์ง„๋‹ค๋ฉด

(๋ฐ”๊ตฌ๋‹ˆ์˜ ์ œ์ผ ์ž‘์€ ๊ฐ’ - ์‚ฌ๊ณผ๊ฐ€ ๋–จ์–ด์ง€๋Š” ์œ„์น˜)๋กœ

์›€์ง์ธ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ณ 

์›€์ง์ธ ํšŸ์ˆ˜๋งŒํผ ๋ฐฐ์—ด ๊ฐ๊ฐ์˜ ๊ฐ’์„ ๋นผ์ค๋‹ˆ๋‹ค.