์ง๋๋ฒ ๋ณด๋ค ๋จ์ด์ง ์ด๋ฒ ์ค๋ ฅ ์ฒดํฌ...ใ ใ ๋ค์์ ๋ ์ด์ฌํ ํด์ผ๊ฒ ๋ค.,...
https://www.codetree.ai/cote/14/problems/move-in-direction/
์ฝ๋ํธ๋ฆฌ | ์ฝ๋ฉํ ์คํธ ์ค๋น๋ฅผ ์ํ ์๊ณ ๋ฆฌ์ฆ ์ ์
๊ตญ๊ฐ๋ํ๊ฐ ๋ง๋ ์ฝ๋ฉ ๊ณต๋ถ์ ๊ฐ์ด๋๋ถ ์ฝ๋ฉ ์์ด๋ณด๋ถํฐ ๊ฟ์ ์ง์ฅ ์ฝํ ํฉ๊ฒฉ๊น์ง, ๊ตญ๊ฐ๋ํ๊ฐ ์์ ํ ์ปค๋ฆฌํ๋ผ์ผ๋ก ์ค๋นํด๋ณด์ธ์.
www.codetree.ai
๋ฐฉํฅ์ ๋ง์ถฐ ์ด๋
๋ฌธ์
(0, 0)์์ ์์ํ์ฌ ์ด N๋ฒ ์์ง์ฌ๋ณด๋ ค๊ณ ํฉ๋๋ค. N๋ฒ์ ๊ฑธ์ณ ์์ง์ด๋ ค๋ ๋ฐฉํฅ๊ณผ ์์ง์ผ ๊ฑฐ๋ฆฌ๊ฐ ์ฃผ์ด์ก์ ๋, ์ต์ข
์์น๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํด๋ณด์ธ์.
๋จ, dx, dy ํ
ํฌ๋์ ํ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ฃผ์ธ์.
์ ๋ ฅ ํ์
์ฒซ ๋ฒ์งธ ์ค์ ์ ์ N์ด ์ฃผ์ด์ง๋๋ค.
๋ ๋ฒ์งธ ์ค๋ถํฐ๋ N๊ฐ์ ์ค์ ๊ฑธ์ณ ๊ฐ ์ค๋ง๋ค ์ด๋๋ฐฉํฅ๊ณผ ์ด๋ํ ๊ฑฐ๋ฆฌ๊ฐ ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋๋ค. ๋ฐฉํฅ์ W, S, N, E์ค์ ํ๋์ด๋ฉฐ ๊ฐ๊ฐ ์, ๋จ, ๋ถ, ๋์ชฝ์ผ๋ก ์ด๋ํจ์ ์๋ฏธํฉ๋๋ค.
- 1 ≤ N ≤ 100
- 1 ≤ ํ ๋ฒ์ ์์ง์ด๋ ๊ฑฐ๋ฆฌ ≤ 10
์ถ๋ ฅ ํ์
์ฒซ ๋ฒ์งธ ์ค์ ์ต์ข ์์น x, y๋ฅผ ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ์ถ๋ ฅํฉ๋๋ค.
์ ์ถ๋ ฅ ์์
์์ 1
์ ๋ ฅ:
4
N 3
E 2
S 1
E 2
์ถ๋ ฅ:
4 2
์์ ์ค๋ช
์๋ก 3์นธ, ์ค๋ฅธ์ชฝ์ผ๋ก 2์นธ, ์๋๋ก 1์นธ ์ด๋ ํ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ค์ 2์นธ ์ด๋ํ๋ฉด ์ต์ข ์์น๋ (4, 2)๊ฐ ๋ฉ๋๋ค.
์ ํ
์๊ฐ ์ ํ: 1000ms ๋ฉ๋ชจ๋ฆฌ ์ ํ: 80MB
ํ์ด
W,E,N,S ์์๋ก dx, dy ๋ฐฐ์ด์ ์ ์ธํ๋ค. ๊ฐ ์ ๋ ฅ์ switch ๋ฌธ์ ์ฌ์ฉํด์ case์ ๋ง๊ฒ x,y ์ขํ๋ฅผ ๊ณ์ฐํ๋ค.
์ฝ๋
let n = Int(readLine()!)!
let dx = [-1,1,0,0], dy = [0,0,1,-1]
var x = 0, y = 0
for _ in 0..<n {
let input = readLine()!.split(separator: " ").map{String($0)}
switch input[0] {
case "W":
x += dx[0]*Int(input[1])!
y += dy[0]*Int(input[1])!
case "E":
x += dx[1]*Int(input[1])!
y += dy[1]*Int(input[1])!
case "N":
x += dx[2]*Int(input[1])!
y += dy[2]*Int(input[1])!
case "S":
x += dx[3]*Int(input[1])!
y += dy[3]*Int(input[1])!
default:
break
}
}
print("\(x) \(y)")
'โจ๏ธ Language > swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] ๋ณ์์ ํ๋กํผํฐ2 (1) | 2024.03.15 |
---|---|
[Swift] ๋ณ์์ ํ๋กํผํฐ1 (0) | 2024.03.15 |
[์ฝ๋ํธ๋ฆฌ ์ฑ๋ฆฐ์ง] 5์ฃผ์ฐจ - HashMap (0) | 2023.10.04 |
[์ฝ๋ํธ๋ฆฌ ์ฑ๋ฆฐ์ง] 4์ฃผ์ฐจ - ์์ ํ์ (0) | 2023.10.04 |
[์ฝ๋ํธ๋ฆฌ ์ฑ๋ฆฐ์ง] 3์ฃผ์ฐจ - ์์ ํ์ (0) | 2023.09.25 |