🧑💻 이번에 Spring Boot 공부를 시작했다. 해당 Spring 진영에 요청이 들어왔을 때 프레임워크 내부에서 어떻게 동작하는지 궁금해 알아보고 이해한 대로 정리해보고자 한다. 📚Spring Framework & Spring Boot 이에 대해 이야기하기 전, Spring Framework와 Spring Boot의 차이를 간략하게 이야기하겠다. Spring Framework는 Java 기반 웹 프레임워크이고, Spring Framework위에 구축된 Spring Boot는 Spring Framework에는 없는 개발에 필요한 초기 설정이나 Spring Framework와는 다르게 내장 웹 서버가 있어 더 빠르게 개발 및 테스트가 가능한 것이라 보면 된다. 📚 내장 웹 서버가 있으면 왜 개발 및 테..

이번 문제를 풀면서 Arrays.copyOfRange() 메서드를 알게 되었다. 사용법은 Arrays.copyOfRange(배열, start, end)이다. copy를 시작할 start 인덱스 지점과 end 지점 -1까지 copy를 하여 배열에 저장할 수 있다! 약간 Python으로 치면 배열 슬라이싱이랑 비슷한 느낌이었다. 물론 Python의 슬라이싱은 배열을 말 그대로 잘라주는 것이라 위의 메서드와는 분명히 다르다는 것을 알아두자!(자바도 슬라이싱 있으면 을매나 좋을꼬,,) ✏️ 뭐,, 프로그래머스를 많이 풀어본 것도 아니지만 한동안 서버 개발 공부를 한답시고 놓았다가 거의 8개월 만에 다시 해보니 와우,, 진짜 꾸준함이 중요하다는 것을 다시 한번 느끼게 되었다 'ㅅ' 그리고 요즘 생각하는 것이 대학..

배열에 서로 다른 인덱스에 저장된 값을 임의로 2개 뽑아 나올 수 있는 모든 값을 오름차순으로 정렬하여 반환하는 함수이다. 코드를 보며 설명하도록 하겠다. 배열에 저장된 값들 중에서의 모든 경우의 수를 따지기 위해 중첩 for 반복문을 이용하였는데, 이 문제는 ArrayList 객체를 사용하여 해결하였다. ArrayList 객체의 메서드 중 indexOf() 메서드를 사용하였다. indexOf() 메서드는 파라미터 안에 인자를 주어 해당 값이 ArrayList 객체 안에 존재하면 그 값이 저장되어있는 인덱스 번호를 리턴하고 그 값이 만약 없다면 -1을 리턴하게 된다. 반복문을 통해 모든 경우의 수를 따지면서 indexOf() 메서드를 사용하여 이미 존재하지 않는다면 즉, 그 값이 이미 ArrayList ..

이차원 배열 sizes를 받아 배열 안에 저장된 값들 중 모든 명함 크기를 수용할 수 있는 크기 중 가장 작은 크기를 계산하여 반환하는 함수이다. 코드를 보며 설명하도록 하겠다. 현재 기준 역대 level 1 프로그래머스 문제들 중 가장 긴 코드이다. 우선 어떻게 solution을 내려고 했는지에 대해서 코드의 큰 틀을 설명하도록 하겠다. 모든 경우의 수 즉, 모든 크기의 명함을 수용하기 위해서는 가장 큰 값을 구해야 한다. 그 이유는 문제의 설명에 명함을 눕히는 것이 가능하다고 되어있는데, 이점을 이용해 지갑의 크기를 줄일 수 있다. 이해를 돕기 위해 첫 번째 입출력 예를 통해 예시를 보이겠다. 첫 번째 입출력은 [[60, 50], [30, 70], [60, 30], [80, 40]]이고, 가장 큰 값..

int 타입 배열 arr에 저장되어있는 값들 중 연속된 값들은 제거하고 남은 수들을 반환하는 문제이다. 코드를 보며 설명하도록 하겠다. 코드에 대해 설명하면 먼저 인접해있는 두 인덱스에 저장된 값들을 비교하여 같으면 count 변수를 증감시키고 같지 않다면 다시 count를 0으로 초기화한다. 이때, reload 변수를 증감시킨다. reload 변수를 증감시키는 이유는 인접해있는 두 변수가 다른 상황이 몇 번 오는지를 확인하기 위해서이다. 하지만 여기서 주의해야 할 점은 마지막 인덱스 번호 뒤로는 더 이상 존재하는 인덱스가 없기 때문에 대조할 비교군이 없다. 그렇기 때문에 reload의 값을 하나 더 증가시켜야만 정확한 측정을 할 수 있다. 이해를 돕기 위해 하나의 예를 들겠다. 이렇게 배열의 크기를 몇..

int 타입 변수 n으로부터 입력받은 값을 가지고 1부터 n사이에 있는 자연수 사이에서 소수의 개수를 찾는 문제이다. 코드를 보며 설명하도록 하겠다. 우선 코드를 살펴보기 전 소수에 대해서 이야기를 하자면 소수는 자기 자신을 나누어 떨어지게 하는 숫자가 1과 자기 자신을 제외하고 존재하지 않는다면 그 숫자를 소수라고 한다. 이를 확인하기 위해 for 중첩 반복문을 사용하였다. i % j가 0이라면 나누어 떨어지는 것이기 때문에 반복을 통해 나누어 떨어지지 않는 수를 찾았다. 저 코드에서 만약 6, 9, 13번째 줄의 코드들이 존재하지 않는다면 이 코드에 문법적인 오류는 없지만 제대로 된 값을 반환받지는 못한다. 그 이유는 8번 줄의 if 조건문으로 인해 1과 자기 자신(i)을 제외한 사이의 숫자들 중 i..