ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [내일배움캠프] 12월 1주차 WIL 회고록
    카테고리 없음 2022. 12. 12. 00:12

    이번주에 배운 것 : 자바 스프링 입문

    이번주에 공부한 것 :  프로그래머스 입문 알고리즘, 자바 스프링


    알고리즘 

     

    n의 배수 구하기 : 정수 n과 정수 배열 numlist가 매개변수로 주어질 때, numlist에서 n의 배수가 아닌 수들을 제거한 배열을 return하도록 solution 함수를 완성하기

     

    풀이: 정수를 받는 list를 만들고 for문을 이용해 반복문을 돌리면서 num 나누기 n 의 나머지가 0이면 list에 추가하고 list를 리턴시켰다.

    import java.util.*;
    class Solution {
        public ArrayList solution(int n, int[] numlist) {
            ArrayList<Integer> list = new ArrayList<>();
            for(int num : numlist) {
                if(num % n ==0){
                    list.add(num);
                }
            }
            return list;
        }
    }

     

    2차원으로 만들기 : 정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요.

     

    풀이: 

    class Solution {
        public int[][] solution(int[] num_list, int n) {
            int[][] answer = new int[num_list.length/n][n];
            int count=0;
            for(int i=0; i<num_list.length/n; i++) {
                for(int j=0; j<n; j++) {
                    answer[i][j]=num_list[count];
                    count++;
                }
            }
            return answer;
        }
    }

     

    캐릭터의 좌표 : 머쓱이는 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의 가로 크기가 9라면 왼쪽으로 최대 [-4,0] 까지 , 오른쪽으로 최대 [4,0] 까지 이동할수 있으니까 board 크기를 2로 나눈 몫이 board의 최대 크기이다. for문을 이용해 반복문을 돌린 후, if 문으로 answer 값을 변환 후 리턴시켰다.

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

     

    영어가 싫어요: 영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.

     

    풀이: 문자를 숫자로 바꾸고 싶을때는 replace() 함수를 쓰면 편하게 바꿀 수 있다.

    Long.parseLong() = Long 클래스의 내장 메서드를 사용하여 숫자를 나타내는 String Long으로 변환 할 수 있다.

    class Solution {
        public long solution(String numbers){
                long answer = 0;
                numbers = numbers.replace("one","1");
                numbers = numbers.replace("two","2");
                numbers = numbers.replace("three","3");
                numbers = numbers.replace("four","4");
                numbers = numbers.replace("five","5");
                numbers = numbers.replace("six","6");
                numbers = numbers.replace("seven","7");
                numbers = numbers.replace("eight","8");
                numbers = numbers.replace("nine","9");
                numbers = numbers.replace("zero","0");
                answer = Long.parseLong(numbers);
                return answer;
            }
    }

    자바 스프링 : 스프링 입문 강의를 들으면서 스프링 공부를 했다. 

    강의를 다 들은 후 따로 개인 과제를 내주셔서 과제를 했다.

    개인 과제:

    1. Use-Case 그려보기
    2. 전체 게시글 목록 조회 API
    3. 게시글 작성 API
    4. 선택한 게시글 조회 API
    5. 선택한 게시글 수정 API
    6. 선택한 게시글 삭제 API

    금요일 오후 두시까지 제출이라 수목금 3일동안 열심히 했는데 아직 자바 실력이 모자라 기능 구현을 다 구현하지 못하고 제출했다.

    (1번, 2번, 3번만 구현 ... ㅠㅠ)

    금요일 저녁 7시에 튜터님이 개인 과제를 바탕으로 실시간 강의를 해주셨다.

    강의를 들으면서 한번 적어봤다. 나중에 도움이 될 것 같아서..

     

    강의를 다 듣고 대원 중 한분이 Postman 사용법을 알려주셔서 구현 하지 못한 게시글 수정을 테스트 해봤는데

    문제 없이 수정이 잘 되었다. 미구현인줄 알았는데 구현이 되서 되게 기분이 좋았다 ㅋㅋㅋ

     

    일요일에 게시글 삭제 구현을 했다.

    Postman으로 확인 시 id 값이 다르면 주소가 올바르지 않는다고 익셉션이 정상적으로 발생하고, 비밀번호가 다르면 비밀번호가 다르다고익셉션이 발생한다.

    나중에 실력이 좋아진다면 깔끔하게 다시 만들어봐야겠다.

     

    선택 게시글 api 는 머리를 쥐어짜내봤는데 어떻게 해야할지 모르겠어서 다음에 해야겠다..

    로컬호스트/api/blogs/1 을 하면 id 값이 1인 데이터들만 나와야하는데 그걸 모르겠다.. ㅠㅠ..

     

    다음주도 강의를 들으면서 공부를 열심히 해야겠다.

Designed by Tistory.