[TIL] 22/12/07

김보아·2022년 12월 7일

오늘은 솔직히 많이 여유롭게 놀아버렸다ㅎㅎ

그래도 알고리즘 문제를 풀어서 얼마나 다행인지ㅎㅎㅎ
처음 문제를 봤을때는 어려워서 어떡하지 했는데 다행히 풀어서 마음이 놓인다.

import java.util.Objects;

class Solution {
    public int[] solution(String[] keyinput, int[] board) {
        int x = 0;
        int y = 0;
        
        for (int i = 0; i < keyinput.length; i++) {
                    if (Objects.equals(keyinput[i], "left")) {
                        x -= 1;
                        if(x < (board[0]/2)*-1) {
                            x = board[0]/2*-1;
                        }
                    } else if (Objects.equals(keyinput[i], "right")) {
                        x += 1;
                        if(x > board[0]/2) {
                            x = board[0]/2;
                        }
                    } else if (Objects.equals(keyinput[i], "up")) {
                        y += 1;
                        if(y > board[1]/2) {
                            y = board[1]/2;
                        }
                    } else if (Objects.equals(keyinput[i], "down")) {
                        y -= 1;
                        if(y < (board[1]/2)*-1) {
                            y = board[1]/2*-1;
                        }
                    }

                }
        int[] answer = {x,y};
        return answer;
    }
}

나의 풀이이다.
제일 고전했던 부분은 바운더리를 넘지 않게끔 하는것이였는데

if(x < (board[0]/2)*-1) {
	x = board[0]/2*-1;
}

이렇게 해결했다. board/2값을 그냥 x값에 넣어주면 끝나는 문제!

알고리즘도 하다보니 무척 재밌는것 같다 처음에는 너무 어려워서 하기 싫었는데 하나하나 풀어가는 재미가 쌓인다.
내일은 스프링 입문 꼭 복습해야지!

profile
개발하는 개발자

0개의 댓글