MUKER_DEV with iOS

[swift] λ°±μ€€ - 19941번: 햄버거 λΆ„λ°° λ³Έλ¬Έ

πŸ€– μ•Œκ³ λ¦¬μ¦˜/BAEKJOON

[swift] λ°±μ€€ - 19941번: 햄버거 λΆ„λ°°

MUKER 2023. 7. 25. 10:45
문제 링크
 

19941번: 햄버거 λΆ„λ°°

κΈ°λ‹€λž€ 벀치 λͺ¨μ–‘μ˜ 식탁에 μ‚¬λžŒλ“€κ³Ό 햄버거가 μ•„λž˜μ™€ 같이 λ‹¨μœ„ κ°„κ²©μœΌλ‘œ 놓여 μžˆλ‹€. μ‚¬λžŒλ“€μ€ μžμ‹ μ˜ μœ„μΉ˜μ—μ„œ 거리가 $K$ μ΄ν•˜μΈ 햄버거λ₯Ό 먹을 수 μžˆλ‹€. 햄버거 μ‚¬λžŒ 햄버거 μ‚¬λžŒ 햄버거 사

www.acmicpc.net


문제

κΈ°λ‹€λž€ 벀치 λͺ¨μ–‘μ˜ 식탁에 μ‚¬λžŒλ“€κ³Ό 햄버거가 μ•„λž˜μ™€ 같이 λ‹¨μœ„ κ°„κ²©μœΌλ‘œ 놓여 μžˆλ‹€. μ‚¬λžŒλ“€μ€ μžμ‹ μ˜ μœ„μΉ˜μ—μ„œ 거리가 μ΄ν•˜μΈ 햄버거λ₯Ό 먹을 수 μžˆλ‹€.

햄버거 μ‚¬λžŒ 햄버거 μ‚¬λžŒ 햄버거 μ‚¬λžŒ 햄버거 햄버거 μ‚¬λžŒ μ‚¬λžŒ 햄버거 μ‚¬λžŒ
1 2 3 4 5 6 7 8 9 10 11 12

μœ„μ˜ μƒνƒœμ—μ„œ 인 경우λ₯Ό μƒκ°ν•΄λ³΄μž. 이 경우 λͺ¨λ“  μ‚¬λžŒμ€ μžμ‹ κ³Ό μΈμ ‘ν•œ ν–„λ²„κ±°λ§Œ 먹을 수 μžˆλ‹€. 10번의 μœ„μΉ˜μ— μžˆλŠ” μ‚¬λžŒμ€ 11번 μœ„μΉ˜μ— μžˆλŠ” 햄버거λ₯Ό 먹을 수 μžˆλ‹€. 이 경우 λ‹€μŒκ³Ό 같이 μ΅œλŒ€ 5λͺ…μ˜ μ‚¬λžŒμ΄ 햄버거λ₯Ό 먹을 수 μžˆλ‹€.

  • 2번 μœ„μΉ˜μ— μžˆλŠ” μ‚¬λžŒ: 1번 μœ„μΉ˜μ— μžˆλŠ” 햄버거
  • 4번 μœ„μΉ˜μ— μžˆλŠ” μ‚¬λžŒ: 5번 μœ„μΉ˜μ— μžˆλŠ” 햄버거
  • 6번 μœ„μΉ˜μ— μžˆλŠ” μ‚¬λžŒ: 7번 μœ„μΉ˜μ— μžˆλŠ” 햄버거
  • 9번 μœ„μΉ˜μ— μžˆλŠ” μ‚¬λžŒ: 8번 μœ„μΉ˜μ— μžˆλŠ” 햄버거
  • 10번 μœ„μΉ˜μ— μžˆλŠ” μ‚¬λžŒ: 11번 μœ„μΉ˜μ— μžˆλŠ” 햄버거
  • 12번 μœ„μΉ˜μ— μžˆλŠ” μ‚¬λžŒ: 먹을 수 μžˆλŠ” 햄버거가 μ—†μŒ

β€ŠμΈ κ²½μš°μ—λŠ” 6λͺ… λͺ¨λ‘κ°€ 햄버거λ₯Ό 먹을 수 μžˆλ‹€.

  • 2번 μœ„μΉ˜μ— μžˆλŠ” μ‚¬λžŒ: 1번 μœ„μΉ˜μ— μžˆλŠ” 햄버거
  • 4번 μœ„μΉ˜μ— μžˆλŠ” μ‚¬λžŒ: 3번 μœ„μΉ˜μ— μžˆλŠ” 햄버거
  • 6번 μœ„μΉ˜μ— μžˆλŠ” μ‚¬λžŒ: 5번 μœ„μΉ˜μ— μžˆλŠ” 햄버거
  • 9번 μœ„μΉ˜μ— μžˆλŠ” μ‚¬λžŒ: 7번 μœ„μΉ˜μ— μžˆλŠ” 햄버거
  • 10번 μœ„μΉ˜μ— μžˆλŠ” μ‚¬λžŒ: 8번 μœ„μΉ˜μ— μžˆλŠ” 햄버거
  • 12번 μœ„μΉ˜μ— μžˆλŠ” μ‚¬λžŒ: 11번 μœ„μΉ˜μ— μžˆλŠ” 햄버거

μ‹νƒμ˜ 길이 , 햄버거λ₯Ό 선택할 수 μžˆλŠ” 거리 , μ‚¬λžŒκ³Ό ν–„λ²„κ±°μ˜ μœ„μΉ˜κ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, 햄버거λ₯Ό 먹을 수 μžˆλŠ” μ‚¬λžŒμ˜ μ΅œλŒ€ 수λ₯Ό κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

μž…λ ₯

첫 쀄에 두 μ •μˆ˜ κ³Ό κ°€ μžˆλ‹€. 그리고 λ‹€μŒ 쀄에 μ‚¬λžŒκ³Ό ν–„λ²„κ±°μ˜ μœ„μΉ˜κ°€ 문자 P(μ‚¬λžŒ)와 H(햄버거)둜 μ΄λ£¨μ–΄μ§€λŠ” 길이 인 λ¬Έμžμ—΄λ‘œ 주어진닀.

 

좜λ ₯

첫 쀄에 햄버거λ₯Ό 먹을 수 μžˆλŠ” μ΅œλŒ€ μ‚¬λžŒ 수λ₯Ό λ‚˜νƒ€λ‚Έλ‹€.

예제


성곡 풀이

import Foundation

let nk = readLine()!.split { $0 == " " }.map { Int($0)! }, N = nk[0], K = nk[1]
var arr = Array(readLine()!)
var answer = 0
for i in 0..<N {
    if arr[i] == "P" {
        let L = i-K >= 0 ? i-K : 0
        let R = i+K >= N-1 ? N-1 : i+K
        for j in L...R {
            if arr[j] == "H" {
                arr[j] = "X"
                answer += 1
                break
            }
        }
    }
}
print(answer)

풀이 ν‚€μ›Œλ“œ

  • μ‚¬λžŒμ„ κΈ°μ€€ 반경으둜 먹을 수 μžˆλŠ” 햄버거가 μžˆλ‹€λ©΄, 햄버거λ₯Ό "X"둜 λ°”κΏ‰λ‹ˆλ‹€.