โค๏ธ Problem
๋๋ณด๊ธฐ
- ๋ฌธ์
๋จธ์ฑ์ด๋ 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]๊น์ง ์ด๋ํ ์ ์์ต๋๋ค.
- [0, 0]์ board์ ์ ์ค์์ ์์นํฉ๋๋ค.
- ์ ํ ์ฌํญ
- board์ [๊ฐ๋ก ํฌ๊ธฐ, ์ธ๋ก ํฌ๊ธฐ] ํํ๋ก ์ฃผ์ด์ง๋๋ค.
- board์ ๊ฐ๋ก ํฌ๊ธฐ์ ์ธ๋ก ํฌ๊ธฐ๋ ํ์์ ๋๋ค.
- board์ ํฌ๊ธฐ๋ฅผ ๋ฒ์ด๋ ๋ฐฉํฅํค ์ ๋ ฅ์ ๋ฌด์ํฉ๋๋ค.
- 0 ≤ keyinput์ ๊ธธ์ด ≤ 50
- 1 ≤ board[0] ≤ 99
- 1 ≤ board[1] ≤ 99
- keyinput์ ํญ์ up, down, left, right๋ง ์ฃผ์ด์ง๋๋ค.
- ์ ์ถ๋ ฅ ์ & ์ค๋ช
no | keyinput | board | result |
1 | ["left", "right", "up", "right", "right"] | [11, 11] | [2, 1] |
2 | ["down", "down", "down", "down", "down"] | [7, 9] | [0, -4] |
- [0, 0]์์ ์ผ์ชฝ์ผ๋ก ํ ์นธ ์ค๋ฅธ์ชฝ์ผ๋ก ํ ์นธ ์๋ก ํ ์นธ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ ์นธ ์ด๋ํ ์ขํ๋ [2, 1]์ ๋๋ค.
- [0, 0]์์ ์๋๋ก ๋ค์ฏ ์นธ ์ด๋ํ ์ขํ๋ [0, -5]์ด์ง๋ง ๋งต์ ์ธ๋ก ํฌ๊ธฐ๊ฐ 9์ด๋ฏ๋ก ์๋๋ก๋ ๋ค ์นธ์ ๋์ด์ ์ด๋ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ [0, -4]๋ฅผ returnํฉ๋๋ค.
๐Solution
ํ์ด
class Solution {
public int[] solution(String[] keyinput, int[] board) {
int horSetting = board[0]/2;
int verSetting = board[1]/2;
int answer[] = {0, 0};
for(int i=0; i<keyinput.length; i++) {
if(keyinput[i].contains("left")
||keyinput[i].contains("right")) {
if(keyinput[i].equals("right")) {
if (answer[0] < horSetting){
answer[0]++;
}
} else {
if (answer[0] > -(horSetting)){
answer[0]--;
}
}
} else {
if(keyinput[i].equals("up")) {
if (answer[1] < verSetting){
answer[1]++;
}
} else {
if (answer[1] > -(verSetting)){
answer[1]--;
}
}
}
}
return answer;
}
}
์ฒ๋ฆฌ์๋ GOOD
๐ Comment
์ฒ์์ ์งฐ๋ ์ฝ๋๋ ํ ์คํธ 8๋ฒ์์ ์คํจ๊ฐ ๋ฌ๋ค.
class Solution {
public int[] solution(String[] keyinput, int[] board) {
int answer[] = {0, 0};
int horSetting = board[0]/2;
int verSetting = board[1]/2;
for(int i=0; i<keyinput.length; i++) {
if(keyinput[i].contains("left")
||keyinput[i].contains("right")) {
if(keyinput[i].equals("right")) {
answer[0]++;
} else {
answer[0]--;
}
} else {
if(keyinput[i].equals("up")) {
answer[1]++;
} else {
answer[1]--;
}
}
}
if(answer[0] > horSetting) {
answer[0] = horSetting;
} else if (answer[0] < -(horSetting)) {
answer[0] = -(horSetting);
} else {
;
}
if(answer[1] > verSetting) {
answer[1] = verSetting;
} else if (answer[1] < -(verSetting)) {
answer[1] = -(verSetting);
} else {
;
}
return answer;
}
}
๊ณฐ๊ณฐํ ์๊ฐ์ ํด๋ณด๋, ์ ์ฝ๋์ ์กฐ๊ฑด๋ฌธ์์๋ board ๊ฐ์ ๋์ด๋ ๊ณ์ํด์ ๋์ ๋๊ฑฐ๋ ๊ฐ์๋ ์ ์๋ ๊ฐ๋ฅ์ฑ์ด ์์๋ค.
๋ง์ฝ board๊ฐ์ด [3, 3]์ผ ๋, keyinput์ด ["right", "right", "up", "right", "right"] ์ด๋ผ๋ฉด board์ ์ข์ธก ์ ํ๊ฐ์ธ 1์ ๋์ด 4๊น์ง ์ฆ๊ฐํ๊ฒ ๋๋ ๊ฒ์ด๋ค.
๋ฐ๋ผ์ ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด if (answer[0] < horSetting), if (answer[0] > -(horSetting)) ์ ๊ฐ์ ์กฐ๊ฑด์ ํตํด ์ ํ ๊ฐ์ ๋๋ ๊ฒฝ์ฐ answer[0]์ด horSetting ๊ฐ์ ๋์ง ๋ชปํ๋๋ก ์กฐ์ ํ์๋ค.
๊ทธ ๊ฒฐ๊ณผ ํต๊ณผ!!!!
๋ค์ฐจ์ ๋ฐฐ์ด์ ํ ๋๋ง๋ค ๋ฏ์ค๊ณ ์ด๋ ต๋ค๐ฅ
'Programmers lv-0' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์์ ์ง๋ - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.28 |
---|---|
์ธ๊ณ์ด ์ฌ์ - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.28 |
์ง์ฌ๊ฐํ ๋์ด ๊ตฌํ๊ธฐ - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (1) | 2022.11.28 |
์จ์ด์๋ ์ซ์์ ๋ง์ (2) - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.28 |
๋คํญ์ ๋ํ๊ธฐ - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.28 |
์ต๋๊ฐ ๋ง๋ค๊ธฐ (2) - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ] (0) | 2022.11.28 |
๋๊ธ