MUKER_DEV with iOS

[swift] ๋ฐฑ์ค€ - 1138๋ฒˆ: ํ•œ ์ค„๋กœ ์„œ๊ธฐ ๋ณธ๋ฌธ

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

[swift] ๋ฐฑ์ค€ - 1138๋ฒˆ: ํ•œ ์ค„๋กœ ์„œ๊ธฐ

MUKER 2023. 8. 4. 10:59
๋ฌธ์ œ ๋งํฌ
 

1138๋ฒˆ: ํ•œ ์ค„๋กœ ์„œ๊ธฐ

์ฒซ์งธ ์ค„์— ์‚ฌ๋žŒ์˜ ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 10๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ํ‚ค๊ฐ€ 1์ธ ์‚ฌ๋žŒ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์ž๊ธฐ๋ณด๋‹ค ํ‚ค๊ฐ€ ํฐ ์‚ฌ๋žŒ์ด ์™ผ์ชฝ์— ๋ช‡ ๋ช…์ด ์žˆ์—ˆ๋Š”์ง€ ์ฃผ์–ด์ง„๋‹ค. i๋ฒˆ์งธ ์ˆ˜๋Š” 0๋ณด๋‹ค

www.acmicpc.net


๋ฌธ์ œ

N๋ช…์˜ ์‚ฌ๋žŒ๋“ค์€ ๋งค์ผ ์•„์นจ ํ•œ ์ค„๋กœ ์„ ๋‹ค. ์ด ์‚ฌ๋žŒ๋“ค์€ ์ž๋ฆฌ๋ฅผ ๋งˆ์Œ๋Œ€๋กœ ์„œ์ง€ ๋ชปํ•˜๊ณ  ์˜ค๋ฏผ์‹์˜ ์ง€์‹œ๋Œ€๋กœ ์„ ๋‹ค.

์–ด๋Š ๋‚  ์‚ฌ๋žŒ๋“ค์€ ์˜ค๋ฏผ์‹์ด ์‚ฌ๋žŒ๋“ค์ด ์ค„ ์„œ๋Š” ์œ„์น˜๋ฅผ ๊ธฐ๋กํ•ด ๋†“๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„์นจ์— ์ž๊ธฐ๊ฐ€ ๊ธฐ๋กํ•ด ๋†“์€ ๊ฒƒ๊ณผ ์‚ฌ๋žŒ๋“ค์ด ์ค„์„ ์„  ์œ„์น˜๊ฐ€ ๋งž๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

์‚ฌ๋žŒ๋“ค์€ ์ž๊ธฐ๋ณด๋‹ค ํฐ ์‚ฌ๋žŒ์ด ์™ผ์ชฝ์— ๋ช‡ ๋ช… ์žˆ์—ˆ๋Š”์ง€๋งŒ์„ ๊ธฐ์–ตํ•œ๋‹ค. N๋ช…์˜ ์‚ฌ๋žŒ์ด ์žˆ๊ณ , ์‚ฌ๋žŒ๋“ค์˜ ํ‚ค๋Š” 1๋ถ€ํ„ฐ N๊นŒ์ง€ ๋ชจ๋‘ ๋‹ค๋ฅด๋‹ค.

๊ฐ ์‚ฌ๋žŒ๋“ค์ด ๊ธฐ์–ตํ•˜๋Š” ์ •๋ณด๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ์ค„์„ ์–ด๋–ป๊ฒŒ ์„œ์•ผ ํ•˜๋Š”์ง€ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์‚ฌ๋žŒ์˜ ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 10๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ํ‚ค๊ฐ€ 1์ธ ์‚ฌ๋žŒ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์ž๊ธฐ๋ณด๋‹ค ํ‚ค๊ฐ€ ํฐ ์‚ฌ๋žŒ์ด ์™ผ์ชฝ์— ๋ช‡ ๋ช…์ด ์žˆ์—ˆ๋Š”์ง€ ์ฃผ์–ด์ง„๋‹ค. i๋ฒˆ์งธ ์ˆ˜๋Š” 0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , N-i๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค. i๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์ค„์„ ์„  ์ˆœ์„œ๋Œ€๋กœ ํ‚ค๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์˜ˆ์ œ


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

let N = Int(readLine()!)!
let arr = readLine()!.split { $0 == " " }.map { Int($0)! }
var result = Array(repeating: 0, count: N)

loop: for i in 0..<N {
    var count = 0
    
    for j in 0..<N {
        if count == arr[i] {
            if result[j] == 0 {
                result[j] = i+1
                break
            }
            continue
        }
        if result[j] == 0 { count += 1 }
    }
}
result.forEach { print($0,terminator: " ")}

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

  • N๋งŒํผ 0์œผ๋กœ ์ฑ„์›Œ์ง„ ๋ฐฐ์—ด result๋ฅผ ๋งŒ๋“ค์–ด ์คฌ์Šต๋‹ˆ๋‹ค. ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ๋ฐฐ์—ด arr์„ ์ˆœ์ฐจ์ ์œผ๋กœ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด์˜ ๊ฐ’์€ result์— ๋“ค์–ด๊ฐ€๊ธฐ ์œ„ํ•œ ๊ฐ’์ด ๋˜๋Š”๋ฐ ์ฃผ์–ด์ง„ ์ˆซ์ž๊ฐ€ 2๋ผ๋ฉด result์—์„œ 0 ๋‘ ๊ฐœ ๋’ค์— ์ˆซ์ž๋ฅผ ๋„ฃ์–ด์ฃผ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
  • ์˜ˆ์ œ๊ฐ€ 2 1 1 0 ์ผ ๋•Œ result๋Š” [0,0,0,0]์œผ๋กœ ์ดˆ๊ธฐํ™”๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ์ œ 2 1 1 0 ์„ ์ˆœ์ฐจ ์ ์œผ๋กœ ๋Œ ๋•Œ result๊ฐ€ ๋ณ€ํ™”๋Š” ๋ชจ์Šต์„ ๋ณด๊ฒŒ ๋˜๋ฉด, 2์ผ ๋•Œ result๋ฐฐ์—ด์˜ 0์ด 2 ๊ฐœ์ˆ˜ ๋’ค์— ์ˆซ์ž๊ฐ€ ์ž…๋ ฅ๋˜๊ธฐ์— [0,0,1,0] ์ด ๋ฉ๋‹ˆ๋‹ค. ์ด์–ด์„œ 1 ์ผ ๋•Œ๋Š” 2 ์•ž์— ๋ณธ์ธ์˜ ์ˆซ์ž๋ณด๋‹ค ํฐ ์ˆซ์ž๊ฐ€ ํ•œ ๊ฐœ ๋ฐ–์— ์•ˆ ์˜ค๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— [0,2,1,0]์ด ๋ฉ๋‹ˆ๋‹ค. ์ด์–ด์„œ 1์ผ ๋•Œ๋Š” [0,2,1,3] , [4,2,1,3]์œผ๋กœ result๊ฐ€ ์ฑ„์›Œ์ง€๊ฒŒ ๋˜์–ด ์˜ฌ๋ฐ”๋ฅธ ์ถœ๋ ฅ๊ฐ’์„ ๋„์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.