TIL 12/9

드립이 블로그·2022년 12월 9일
0

TIL

목록 보기
27/80

오늘은 과제를 제출하고, 알고리즘을 풀었다.
프로그래머스의 캐릭터의 좌표 라는 문제를 계속 붙잡고 있었다.
이틀 전 부터 붙잡고 있던 문제였는데, 어제는 손도 못댔고, 그래도 오늘 시간이 난 김에 다시 붙잡았다.
이틀전에 풀었을 때는 계속 30점 정도만 나와서 왜그런거지? 하면서 계속 코드를 고쳐도 똑같은 결과가 나왔다.
그래서 기본 구조는 따라하되, 아예 처음부터 짜보자 하는 생각으로 초기화 한 후 다시 짰다.

public class CharacterCoordinate {

    public int[] solution(String[] keyinput, int[] board) {
        int row = board[1] / 2;
        int col = board[0] / 2;
        int[] answer = {0, 0};
        for (String s : keyinput) {
            switch (s) {
                case "up":
                    answer[1] += 1;
                    if (row < answer[1]) {
                        answer[1] -= 1;
                        break;
                    }
                    break;
                case "down":
                    answer[1] = answer[1] - 1;
                    if (row < -answer[1]) {
                        answer[1] = answer[1] + 1;
                        break;
                    }
                    break;
            }
        }
        for (String s : keyinput) {
            switch (s) {
                case "right":
                    answer[0] = answer[0] + 1;
                    if (col < answer[0]) {
                        answer[0] = answer[0] - 1;
                        break;
                    }
                    break;
                case "left":
                    answer[0] = answer[0] - 1;
                    if (col < -answer[0]) {
                        answer[0] = answer[0] + 1;
                        break;
                    }
                    break;

            }
        }

        return answer;
    }
}

이것이 오늘 짠 코드이다.
처음에는 if문 후에 break;를 추가하지 않아 계속 틀리게 나왔었다.
이게 왜 안되는거지 하다가 혹시 하고 break;를 추가하니 통과하게 되었다.
비록 정돈된 코드도 아니고, 효율적인 코드도 아니지만, 이렇게 문제 하나 하나 풀어갈때마다 굉장히 성취감을 느낀다.
풀고 난 후에 다른 사람들 코드를 보면, 와 이렇게도 할수 있구나 하는 생각이 계속 든다.
계속 이렇게 실력이 늘어간다는 느낌을 받았으면 좋겠다.

0개의 댓글