https://school.programmers.co.kr/learn/courses/30/lessons/120861
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
[ ๋ฌธ์ ์ค๋ช ]
๋จธ์ฑ์ด๋ 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 ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
board์ [๊ฐ๋ก ํฌ๊ธฐ, ์ธ๋ก ํฌ๊ธฐ] ํํ๋ก ์ฃผ์ด์ง๋๋ค.
board์ ๊ฐ๋ก ํฌ๊ธฐ์ ์ธ๋ก ํฌ๊ธฐ๋ ํ์์ ๋๋ค.
board์ ํฌ๊ธฐ๋ฅผ ๋ฒ์ด๋ ๋ฐฉํฅํค ์ ๋ ฅ์ ๋ฌด์ํฉ๋๋ค.
0 ≤ keyinput์ ๊ธธ์ด ≤ 50
1 ≤ board[0] ≤ 99
1 ≤ board[1] ≤ 99
keyinput์ ํญ์ up, down, left, right๋ง ์ฃผ์ด์ง๋๋ค.
[ ํ์ด ]
class Solution {
public int[] solution(String[] keyinput, int[] board) {
int[] answer = {0,0};
for (int i=0; i<keyinput.length; i++) {
//์์๋ณ์ x,y๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ , ๋ฒ์์ ๋ฒ์ด๋์ง ์๋์ง ๊ฒ์ฌ ํ
//answer[0], answer[1]์ ํ ๋น
int x = answer[0]; //x,y์ ํ์ฌ ์ขํ๊ฐ ์ค์
int y = answer[1];
switch (keyinput[i]) { //switch-case๋ฌธ์ผ๋ก ์ขํ์ด๋
case "up" :
y += 1;
break;
case "down" :
y -= 1;
break;
case "left" :
x -= 1;
break;
case "right" :
x += 1;
break;
}
if (Math.abs(x) <= board[0]/2) { //์ฎ๊ธด x์ขํ๊ฐ boardํฌ๊ธฐ๋ฅผ ๋ฒ์ด๋์ง ์๋๋ค๋ฉด
answer[0] = x; //answer[0]์ ํ ๋น
}
if (Math.abs(y) <= board[1]/2) { //์ฎ๊ธด y์ขํ๊ฐ boardํฌ๊ธฐ๋ฅผ ๋ฒ์ด๋์ง ์๋๋ค๋ฉด
answer[1] = y; //answer[1]์ ํ ๋น
}
}
return answer;
}
}
'๐ฅ Coding Test > ์ค๋ต๋ ธํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Lv.1] ๋ช ์์ ์ ๋น (0) | 2023.08.13 |
|---|---|
| [์ ๋ฌธ] ์ง๋ฃ์์ ์ ํ๊ธฐ (0) | 2023.08.04 |
| [์ ๋ฌธ] ์ธ๊ณ์ด ์ฌ์ (0) | 2023.08.04 |
| [์ ๋ฌธ] ๊ณต ๋์ง๊ธฐ (0) | 2023.08.03 |
| [์ ๋ฌธ] ํ ๋ฒ๋ง ๋ฑ์ฅํ ๋ฌธ์ (0) | 2023.08.02 |