본문 바로가기

분류 전체보기

(111)
[Java] 프로그래머스 : 최소직사각형 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/86491 코딩테스트 연습 - 최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 📌 풀이 가로 세로 길이 비교해서 가로가 세로보다 크면 두 위치 값을 변경한다. 그리고 가로길이가 가장 긴 것을 저장, 세로 길이 또한 마찬가지로 가장 큰 값을 저장한다. 곱하여 리턴 코드는 간단했지만 생각할수록 점점 꼬여갔던 문제이다. 📌 코드 package programmers; public class Pro_220523 { // 도움 코드 public..
[Java] 프로그래머스 : 부족한 금액 계산하기 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/82612 코딩테스트 연습 - 부족한 금액 계산하기 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr 📌 풀이 int로 로직을 구현하고 보니 일부 Edge Case에 걸려서 고민 끝에 다른 사람의 풀이를 참고하여 풀었다. (price의 최댓값은 2500, count의 최댓값 2500이다. 두 최댓값을 넣고 진행하면 int의 최대 범위를 넘어 오버플로우가 발생한다.) sum변수에 대입하기 전에 long타입으로 형 변환을 해주었다..
[Java] 프로그래머스 : 같은 숫자는 싫어 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/12906 코딩테스트 연습 - 같은 숫자는 싫어 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 programmers.co.kr 📌 코드 package programmers; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Pro_220518 { // 같은 숫자는 싫어 public static int[] solution(int[] arr) { ..
[Java] 프로그래머스 : 문자열 내 마음대로 정렬하기 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/12915 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱 programmers.co.kr 📌 코드 package programmers; import java.util.Arrays; public class Pro_220513 { // 문자열 내 마음대로 정렬하기 public static String[] solution(String[] strArr, int n) { String..
[Web] Servlet 📌 Servlet 특징 클라이언트의 요청에 대해 동적으로 작동하는 웹 애플리케이션 컴포넌트 HTML을 사용하여 요청에 응답 Java Thread를 이용해 동작 MVC 패턴에서 Controller로 이용 HTTP 프로토콜 서비스를 지원하는 HttpServlet 클래스를 상속받는다. HTML 변경 시 Servlet을 재 컴파일해야 하는 단점이 있다. 📌 Servlet 동작 방식 사용자가 URL을 입력하면 HTTP Request가 Servlet Container로 전송한다. 요청을 받은 Servlet Container는 HTTPServletRequest, HttpServletResponse 객체를 생성한다. web.xml을 기반으로 사용자가 요청한 URL이 어느 Servlet에 대한 요청인지 찾는다. 해당 S..
[Web] Web Server & WAS & Web Container 📌 Web Server 클라이언트의 request를 받아서 정적인 콘텐츠 (html, css, 이미지)를 response 하는 서버 정적인 페이지를 제공하는 단순히 지정된 역할만 하는 서버 📌 WAS (Web Application Server) 웹 기술을 기반으로 동작하는 애플리케이션 서버를 웹 애플리케이션 서버라고 한다. 자바에서 웹 기술이란 Servlet, Servlet Container 등을 예로 들 수 있다. 보통 줄여서 WAS라고 칭한다. 자바에서는 WAS란 Java EE 사양을 준수하여 만든 서버를 의미한다. 웹 컨테이너보다는 애플리케이션 서버에 가깝다고 보면 된다. 📌 웹 컨테이너 (Web Container) 웹 서버가 정적인 역할만 수행하는데 반해 웹 컨테이너는 내부에서 로직을 수행할 수 ..
[Java] static, final, static final 📌 static 공용 데이터에 해당하거나 인스턴스 필드를 포함하지 않는 메소드를 선언하고자 할 때 활용 정적 메소드는 객체 참조 없이 바로 사용할 수 있는 특징으로 인스턴스 필드나 메소드, 그리고 this 키워드를 사용할 수 없다. 객체마다 가질 필요가 없는 공용으로 사용하는 필드 혹은 인스턴스 필드를 포함하지 않는 메소드 👉 static을 언제 사용해야 하는가? 1. 모든 인스턴스에 공통된 값을 유지해야 하는 멤버 변수 - 인스턴스를 생성하면, 각 인스턴스들은 서로 독립적이기 때문에 서로 다른 값을 유지합니다. 경우에 따라서 각 인스턴스들이 공통적으로 같은 값이 유지되어야 하는 경우에 static을 붙입니다. 2. 인스턴스 변수를 사용하지 않는 메소드 - 메소드의 작업내용 중에서 인스턴스 변수를 필요로..
[Java] == 연산자 & equals() 차이점 📌== 연산자 == 연산자는 int, boolean과 같은primitive type에 대해서는 값을 비교한다. reference type에 대해서는 주소 값을 비교한다. 사실 primitive type도 Constant Pool에 있는 특정 상수를 참조하는 것이기 때문에 결국 주소 값을 비교하는 것으로 볼 수 있다. 같은 상수를 참조하면 주소 값이 같으니 결국 같은 값이면 동일하다고 판단할 수 있다. 리터럴(literal)을 사용해서 값을 생성하면 Constant Pool 영역에 존재하고, new연산자를 통해값을 생성하면 Heap 영역에 존재하게 된다. 👉 Constant Pool 이란? - 런타임에 생성되는 static 상수 저장소이고, Constant Pool 객체에 저장된다. - Constant ..