목록2024/03 (28)
csct3434
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; import java.util.Map.*; import java.util.stream.Collectors; class Solution { public int[] solution(String[] genres, int[] plays) { HashMap category = new HashMap(); HashMap count = new HashMap(); for (int i = 0; i < genres.length; i++) { String genre = genres[i..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dxCxzR/btsFJ2XkNz1/Zodc3b0S9Qy0fq3uBMtEsk/img.png)
인트로 친구 게시글 조회 기능에서의 페이지네이션을 구현하기에 앞서, LIMIT-OFFSET과 NO-OFFSET 방식의 성능을 비교해 보았습니다. 게시글 테이블에 1억 건의 더미 데이터를 추가한 후, MySQL의 EXPLAIN 명령어와 Query Profiling을 활용하여 첫번째 페이지와 마지막 페이지에 대한 쿼리 실행 계획 및 쿼리 성능을 분석했습니다. LIMIT-OFFSET 방식 쿼리문 쿼리 실행 계획 첫번째 페이지에서는 클러스터드 인덱스를 사용하지만, 마지막 페이지에서는 Full Table Scan이 발생함을 확인할 수 있었습니다. 쿼리 실행 시간 첫번째 페이지 : [ 156.68s ] , 마지막 페이지 : [ 295.17s ] 첫번째 페이지와 마지막 페이지의 조회 시간은 약 2배 정도의 차이를 보..
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.HashMap; import java.util.LinkedList; import java.util.List; class Solution { public long solution(int[] weights) { long answer = 0; HashMap countPerWeight = new HashMap(); HashMap torqueMap = new HashMap(); for (int k : weights) { countPerWeight.put(k, countPerWe..
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.Arrays; import java.util.stream.IntStream; class Solution { public int solution(int[][] data, int col, int row_begin, int row_end) { Arrays.sort(data, (a, b) -> a[col - 1] == b[col - 1] ? b[0] - a[0] : a[col - 1] - b[col - 1]); return IntStream.rangeClosed(row_beg..
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.Arrays; import java.util.HashSet; import java.util.Objects; import java.util.Set; class Solution { public String[] solution(int[][] line) { Set points = getPoints(line); return draw(points); } private Set getPoints(int[][] line) { HashSet points = new HashSet(); f..
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr class Solution { public int[] solution(int e, int[] starts) { int[] answer = new int[starts.length]; int[] dp = new int[e + 1]; int[] count = new int[e + 1]; for (int i = 1; i = count[dp[i + 1]]) { dp[i] = i; } else { dp[i] = dp[i + 1]; } } for (int i = 0; i < starts.length; i++) ..
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr class Solution { public long solution(int k, int d) { long answer = 0; for (int x = 0; x
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.HashSet; class Solution { public int solution(int[] elements) { int total = elements.length; HashSet sequenceSum = new HashSet(); int[] dp = new int[total + 1]; for (int idx = 0; idx < total; idx++) { for (int length = 1; length
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.Comparator; import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.stream.Collectors; class Solution { public int solution(int[] cards) { List groups = new LinkedList(); boolean[] selected = new boolean[cards.length + 1]; fo..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/zWTTa/btsFoHthmIm/0ASHeYebusJIiWPahiVSO0/img.png)
서론 자바, 스프링, 스프링부트 프레임워크에서의 의존성 주입 메커니즘에 대해 살펴본다. (이미지 출처 : https://rudaks.tistory.com) 왜 조립까지 신경 써야 할까? 모든 의존성이 안쪽으로, 애플라케이션의 도메인 코드 방향으로 향해야 도메인 코드가 바깥 계층의 변겨응로부터 안전하다 한 클래스가 필요로 하는 모든 객체를 생성자로 전달할 수 있다면 실제 객체 대신 목을 전달할 수 있고, 이렇게 되면 격리된 단위 테스트를 생성하기가 쉬워진다 우리의 객체 인스턴스를 생성할 책임은 누구에게 있을까? 그리고 어떻게 의존성 규칙을 어기지 않으면서 그렇게 할 수 있을까? 설정 컴포넌트 아키텍처에 중립적이고 인스턴스 생성을 위해 모든 클래스에 의존성을 가지는 설정 컴포넌트가 그 책임을 갖는다 설정 컴..