본문 바로가기

Java32

[JAVA , Lv.2] 행렬의 곱셈 [문제] 2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요. [제한사항] 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다. 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다. 곱할 수 있는 배열만 주어집니다. [내 풀이] class Solution { public int[][] solution(int[][] arr1, int[][] arr2) { int[][] answer = new int[arr1.length][arr2[0].length]; //매트릭스 크기 설정 for(int i=0; i 2023. 2. 8.
[JAVA , Lv.2] 괄호 회전하기 [문제] 다음 규칙을 지키는 문자열을 올바른 괄호 문자열이라고 정의합니다. (), [], {} 는 모두 올바른 괄호 문자열입니다. 만약 A가 올바른 괄호 문자열이라면, (A), [A], {A} 도 올바른 괄호 문자열입니다. 예를 들어, [] 가 올바른 괄호 문자열이므로, ([]) 도 올바른 괄호 문자열입니다. 만약 A, B가 올바른 괄호 문자열이라면, AB 도 올바른 괄호 문자열입니다. 예를 들어, {} 와 ([]) 가 올바른 괄호 문자열이므로, {}([]) 도 올바른 괄호 문자열입니다. 대괄호, 중괄호, 그리고 소괄호로 이루어진 문자열 s가 매개변수로 주어집니다. 이 s를 왼쪽으로 x (0 ≤ x < (s의 길이)) 칸만큼 회전시켰을 때 s가 올바른 괄호 문자열이 되게 하는 x의 개수를 return 하.. 2023. 2. 8.
싱글톤(Singleton)이란? 싱글톤 패턴(Singleton Pattern) 디자인 패턴의 일종 객체를 매번 생성하지않고 실행시점에 생성된 혹은 처음으로 생성된 객체만을 이용하는 것. 즉 객체에대한 인스턴스가 단 한개만 존재한다. 이후에 호출된 생성자는 최초에 만들어진 객체를 리턴한다. 주로 사용되는 곳 DBCP(DataBase Connection Poll) 안드로이드 앱 캐시 등등... 싱글톤 패턴의 장점 메모리 인스턴스가 단 한개이기 때문에 new 키워드를 이용하여 매번 객체를 생성하는것보다 메모리 측면에서 우수하다. 속도 미리 생성된 인스턴스를 활용하기 때문에 속도측면에서도 이점이 있다. 데이터 공유 전역 인스턴스이기 때문에 타 클래스에서 사용도 용이하다. 즉 데이터 공유하기 좋다. 싱글톤 패턴의 단점 클래스간 의존성 심화 만들.. 2023. 2. 7.
Java Spring 프로젝트 생성및 살펴보기 이전 포스팅을 통해 이클립스에서 스프링 프로젝트를 만드는데 필요한 Spring Legacy Project를 생성할수 있게 되었다. 1. 스프링 프로젝트 생성 File - New - Spring Legacy Project를 통해 생성이 가능하며 New 다음에 바로 레거시 프로젝트가 없다면 File - New - Other - Spring - Spring Legacy Project를 찾아서 생성할 수 있다. 이후 Next를 누르고 나오는 창에서 프로젝트명을 작성하고 Spring MVC Project를 선택하고 넘어가 준다. 패키지명을 정해준다. com.~~.@@이런식으로 정해주자 이렇게하면 스프링프로젝트 생성이 완료됩니다! 2. 스프링 프로젝트 구조 살펴보기 1) src/main/java 자바 파일( .ja.. 2023. 2. 6.
Java Spring 시작하기 - UTF-8 설정 이클립스는 OS에 따라서 워크스페이스의 인코딩방식을 다르게 설정해 줍니다. 따라서 저희는 한국어도 정상적으로 출력해 주기 위해서 인코딩 방식을 UTF-8로 설정해줘야 합니다. 이클립스를 실행한 후 Window - Preferences - General - workspace 탭으로 들어간 후 좌측 하단의 Text file encoding에서 UTF-8을 선택해 주시면 되겠습니다! 2023. 2. 6.
[JAVA , Lv.2] [1차] 캐시 [문제] 지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발하고 있다. 이 프로그램의 테스팅 업무를 담당하고 있는 어피치는 서비스를 오픈하기 전 각 로직에 대한 성능 측정을 수행하였는데, 제이지가 작성한 부분 중 데이터베이스에서 게시물을 가져오는 부분의 실행시간이 너무 오래 걸린다는 것을 알게 되었다. 어피치는 제이지에게 해당 로직을 개선하라고 닦달하기 시작하였고, 제이지는 DB 캐시를 적용하여 성능 개선을 시도하고 있지만 캐시 크기를 얼마로 해야 효율적인지 몰라 난감한 상황이다. 어피치에게 시달리는 제이지를 도와, DB 캐시를 적용할 때 캐시 크기에 따른 실행시간 측정 프로그램을 작성하시오. [제한사항] 캐시 크.. 2023. 2. 5.