๋ฐ์ํ
์บ๋ฆญํฐ์ ์ขํ
๋ฌธ์ ์ค๋ช
๋จธ์ฑ์ด๋ RPG๊ฒ์์ ํ๊ณ ์์ต๋๋ค. ๊ฒ์์๋ up, down, left, right ๋ฐฉํฅํค๊ฐ ์์ผ๋ฉฐ ๊ฐ ํค๋ฅผ ๋๋ฅด๋ฉด ์, ์๋, ์ผ์ชฝ, ์ค๋ฅธ์ชฝ์ผ๋ก ํ ์นธ์ฉ ์ด๋ํฉ๋๋ค. ์๋ฅผ ๋ค์ด [0,0]์์ up์ ๋๋ฅธ๋ค๋ฉด ์บ๋ฆญํฐ์ ์ขํ๋ [0, 1], down์ ๋๋ฅธ๋ค๋ฉด [0, -1], left๋ฅผ ๋๋ฅธ๋ค๋ฉด [-1, 0], right๋ฅผ ๋๋ฅธ๋ค๋ฉด [1, 0]์ ๋๋ค. ๋จธ์ฑ์ด๊ฐ ์ ๋ ฅํ ๋ฐฉํฅํค์ ๋ฐฐ์ด keyinput์ ๋งต์ ํฌ๊ธฐ board์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ์บ๋ฆญํฐ๋ ํญ์ [0,0]์์ ์์ํ ๋ ํค ์ ๋ ฅ์ด ๋ชจ๋ ๋๋ ๋ค์ ์บ๋ฆญํฐ์ ์ขํ [x, y]๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
- [0, 0]์ board์ ์ ์ค์์ ์์นํฉ๋๋ค. ์๋ฅผ ๋ค์ด board์ ๊ฐ๋ก ํฌ๊ธฐ๊ฐ 9๋ผ๋ฉด ์บ๋ฆญํฐ๋ ์ผ์ชฝ์ผ๋ก ์ต๋ [-4, 0]๊น์ง ์ค๋ฅธ์ชฝ์ผ๋ก ์ต๋ [4, 0]๊น์ง ์ด๋ํ ์ ์์ต๋๋ค.
์ ํ ์ฌํญ
- board์ [๊ฐ๋ก ํฌ๊ธฐ, ์ธ๋ก ํฌ๊ธฐ] ํํ๋ก ์ฃผ์ด์ง๋๋ค.
- board์ ๊ฐ๋ก ํฌ๊ธฐ์ ์ธ๋ก ํฌ๊ธฐ๋ ํ์์ ๋๋ค.
- board์ ํฌ๊ธฐ๋ฅผ ๋ฒ์ด๋ ๋ฐฉํฅํค ์ ๋ ฅ์ ๋ฌด์ํฉ๋๋ค.
- 0 ≤ keyinput์ ๊ธธ์ด ≤ 50
- 1 ≤ board[0] ≤ 99
- 1 ≤ board[1] ≤ 99
- keyinput์ ํญ์ up, down, left, right๋ง ์ฃผ์ด์ง๋๋ค.
์ ์ถ๋ ฅ ์
keyinput | board | result |
["left", "right", "up", "right", "right"] | [11, 11] | [2, 1] |
["down", "down", "down", "down", "down"] | [7, 9] | [0, -4] |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- [0, 0]์์ ์ผ์ชฝ์ผ๋ก ํ ์นธ ์ค๋ฅธ์ชฝ์ผ๋ก ํ ์นธ ์๋ก ํ ์นธ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ ์นธ ์ด๋ํ ์ขํ๋ [2, 1]์ ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- [0, 0]์์ ์๋๋ก ๋ค์ฏ ์นธ ์ด๋ํ ์ขํ๋ [0, -5]์ด์ง๋ง ๋งต์ ์ธ๋ก ํฌ๊ธฐ๊ฐ 9์ด๋ฏ๋ก ์๋๋ก๋ ๋ค ์นธ์ ๋์ด์ ์ด๋ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ [0, -4]๋ฅผ return ํฉ๋๋ค.
์ ์ถ
import Foundation
func solution(_ keyinput:[String], _ board:[Int]) -> [Int] {
let dx = [0,0,-1,1]
let dy = [1,-1,0,0]
var x = 0, y = 0, nx = 0, ny = 0
for key in keyinput{
nx = x
ny = y
switch key{
case "up":
nx += dx[0]
ny += dy[0]
case "down":
nx += dx[1]
ny += dy[1]
case "left":
nx += dx[2]
ny += dy[2]
case "right":
nx += dx[3]
ny += dy[3]
default:
break
}
if nx >= -(board[0]/2) && nx <= board[0]/2 && ny >= -(board[1]/2) && ny <= board[1]/2{
x = nx
y = ny
}
}
return [x, y]
}
keyinput์ ํ๋์ฉ ๋น๊ตํ์ฌ ํค์ ๋ฐฉํฅ๋๋ก ์ขํ๋ฅผ ์ด๋ํ๋ค.
์ด๋ํ ์ขํ๊ฐ board ๋ด์ ์์นํ๋ฉด ํ์ฌ ์ขํ๊ฐ์ ์ ๋ฐ์ดํธํ๋ค.
๋ฐ์ํ
'โจ๏ธ Language > swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค LV.0] ๋คํญ์ ๋ํ๊ธฐ (0) | 2023.01.02 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค LV.0] ์ต๋๊ฐ ๋ง๋ค๊ธฐ (2) (0) | 2023.01.02 |
[ํ๋ก๊ทธ๋๋จธ์ค LV.0] ์ง์ฌ๊ฐํ ๋์ด ๊ตฌํ๊ธฐ (0) | 2022.12.30 |
[ํ๋ก๊ทธ๋๋จธ์ค LV.0] ๋ฐฐ์ด ์์์ ๊ธธ์ด (0) | 2022.12.30 |
[ํ๋ก๊ทธ๋๋จธ์ค LV.0] ์ปจํธ๋กค ์ ํธ (0) | 2022.12.30 |