카테고리 없음

[코드트리 챌린지] 5주차 - 드디어 500점 돌파

꽁난이 2023. 10. 9. 18:29

챌린지 후기글을 쓰는 시간은 참 빨리 찾아오는 것 같다. 
공부량은 턱없이 부족한 것 같은데 이것저것 하다보니 시간은 금새 사라져있다. 

어쩔 수 없다. 오늘도 불안함과 쫄리는 마음으로 진단 평가를 본다. 

 

드디어 내 1차 목표 점수였던 500점을 정복했다. 
끊임 없는 삽질의 연속 끝에 나의 발목을 계속 붙잡던 다중 배열 문제를 풀어냈다. 

물론 그 다음 문제는 손도 못대고 못풀었지만 새로운 부분의 학습이 필요하다는 것을 깨달은 것으로 만족한다. 
500점 넘기는데 한달 넘게 걸린게 안자랑이긴 하다만.. 

시뮬레이션이라는 새로운 과제가 주어지다.

시뮬레이션? 
음.. 평소에 이것저것 상상하며 시뮬레이션을 돌리긴하다만 그 시뮬레이션과 같은 의미인건가?? 

잘 모르겠다.

예제 문제를 풀어보았다. 
dx, dy 라는 새로운 용어가 등장한다. 또 다시 나의 두뇌가 지끈거리기 시작한다. 

음.. 가만보니 교재 목차에 따르면 내 현재 진도보다 훨씬 뒷 부분 내용이다. 
부지런히 진도를 나가야겠다.. 

시뮬레이션부터 공부하면 제일 좋겠으나.. 진도를 건너뛰고 학습할 정도의 수준인지 내 스스로에게 의심이 되기 때문에 이론만 가볍게 찍먹해보고 내일도 열공하자. 

 

링크 참고 - dx, dy 이론 기초
https://www.codetree.ai/missions/5/problems/move-in-direction/description

 

import java.util.Scanner;

public class MovePosition {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // Define dx, dy for N, E, S, W
        int[] dx = {0, 1, 0, -1};
        int[] dy = {1, 0, -1, 0};
        String[] directions = {"N", "E", "S", "W"};

        // Set initial position
        int x = 0, y = 0;

        int N = sc.nextInt();

        for (int i = 0; i < N; i++) {
            String direction = sc.next();
            int steps = sc.nextInt();

            for (int j = 0; j < directions.length; j++) {
                if (direction.equals(directions[j])) {
                    x += dx[j] * steps;
                    y += dy[j] * steps;
                    break;
                }
            }
        }

        System.out.println(x + " " + y);

        sc.close();
    }
}


하.. 이 고뇌의 시간은 언제쯤 끝나는 것일까