-
[내일배움캠프] 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; } }
자바 스프링 : 스프링 입문 강의를 들으면서 스프링 공부를 했다.
강의를 다 들은 후 따로 개인 과제를 내주셔서 과제를 했다.
개인 과제:
- Use-Case 그려보기
- 전체 게시글 목록 조회 API
- 게시글 작성 API
- 선택한 게시글 조회 API
- 선택한 게시글 수정 API
- 선택한 게시글 삭제 API
금요일 오후 두시까지 제출이라 수목금 3일동안 열심히 했는데 아직 자바 실력이 모자라 기능 구현을 다 구현하지 못하고 제출했다.
(1번, 2번, 3번만 구현 ... ㅠㅠ)
금요일 저녁 7시에 튜터님이 개인 과제를 바탕으로 실시간 강의를 해주셨다.
강의를 들으면서 한번 적어봤다. 나중에 도움이 될 것 같아서..
강의를 다 듣고 대원 중 한분이 Postman 사용법을 알려주셔서 구현 하지 못한 게시글 수정을 테스트 해봤는데
문제 없이 수정이 잘 되었다. 미구현인줄 알았는데 구현이 되서 되게 기분이 좋았다 ㅋㅋㅋ
일요일에 게시글 삭제 구현을 했다.
Postman으로 확인 시 id 값이 다르면 주소가 올바르지 않는다고 익셉션이 정상적으로 발생하고, 비밀번호가 다르면 비밀번호가 다르다고익셉션이 발생한다.
나중에 실력이 좋아진다면 깔끔하게 다시 만들어봐야겠다.
선택 게시글 api 는 머리를 쥐어짜내봤는데 어떻게 해야할지 모르겠어서 다음에 해야겠다..
로컬호스트/api/blogs/1 을 하면 id 값이 1인 데이터들만 나와야하는데 그걸 모르겠다.. ㅠㅠ..
다음주도 강의를 들으면서 공부를 열심히 해야겠다.