반응형

JAVA 34

[프로그래머스, SQL] 가격이 제일 비싼 식품의 정보 출력하기

https://school.programmers.co.kr/learn/courses/30/lessons/131115 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 방법 1 : 집계 함수(Aggregate Function) 이용- 집계 함수 : 여러 행의 데이터를 하나의 값으로 요약 -> select문과 함께 사용해야 함SELECT *FROM FOOD_PRODUCTWHERE PRICE = ( SELECT MAX(PRICE) FROM FOOD_PRODUCT);방법 2 : 정렬해서 맨 위에꺼만 뽑기SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGOR..

Map

Map.entrySet()보통 Map은 keySet()으로 키만 가져오거나 values()로 값만 가져올 수 있음키와 값이 함께 필요할 때 entrySet() 사용entrySet()을 사용하면 Map에 있는 쌍을 Set> 형태로 반환getKey(), getValue()메소드를 사용해 각각 키와 값을 얻을 수 있음package Map;import java.util.HashMap;import java.util.Map;public class EntrySet { public static void main(String[] args){ Map map = new HashMap(); map.put("Apple", 3); map.put("Banana", 5); m..

[프로그래머스, JAVA] 전화번호 목록

https://school.programmers.co.kr/learn/courses/30/lessons/42577 - Test는 모두 통과했지만 효율성 테스트를 통과하지 못한 코드중첩 for문이라 시간복잡도가 O(n^2)이 돼서 그런 것 같음class Solution { public boolean solution(String[] phone_book) { //한 번호가 다른 번호의 접두어인 경우 확인 //우선 정렬을 하고 비교 -> 길이순으로 정렬 boolean answer = true; for(int i=0; i  - 정답 코드정렬을 한 후 그 앞부분과 비교하면 된다import java.util.*;class Soluti..

[프로그래머스, JAVA] 완주하지 못한 선수

https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr import java.util.*;class Solution { public String solution(String[] participant, String[] completion) { //참여 선수 명단에서 완주한 선수 빼기 HashMap map = new HashMap(); for(int i=0; i= 0){ map.put(completion[i], map...

[프로그래머스, JAVA] 연속된 수의 합

https://school.programmers.co.kr/learn/courses/30/lessons/120923 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr import java.util.*;class Solution { public ArrayList solution(int num, int total) { ArrayList answer = new ArrayList(); ArrayList list = new ArrayList(); //연속된 수 num개를 더한 값이 total //슬라이딩 윈도우 int mid = to..

[프로그래머스, JAVA] 유한소수 판별하기

https://school.programmers.co.kr/learn/courses/30/lessons/120878#class Solution { public int solution(int a, int b) { int answer = 2; //소수점 아래 숫자가 계속되지 않고 유한개인 것 // 분모의 소인수가 2와 5만 있어야 함 //1. 기약분수로 만들기 //2. 분모가 2나 5인지 확인 int A = Math.max(a, b); //더 큰 수 int B = Math.min(a, b); //더 작은 수 //최대공약수 구하는 법 : 큰 수 % 작은 수를 계속 반복 -> 나머지가 0이 되..

Line Sweeping(라인 스위핑)

Line Sweeping2차원 공간에서 여러 개의 점, 선, 사각형 등의 기하학적 객체를 효율적으로 처리하기 위한 알고리즘 패턴주어진 데이터를 특정한 방향으로 스위핑 처리하여 유의미한 이벤트를 기록하고 계산개념이벤트 기반 처리주어진 기하학적 문제를 해결하기 위해 특정한 이벤트(사건)를 발생시키고 처리하는 방식선분 교차 문제에서는 선분의 시작점과 끝점을 이벤트로 등록정렬과 진행 방향이벤트들을 x좌표 기준으로 정렬한 후 왼쪽에서 오른쪽으로 진행하면서 이벤트를 하나씩 처리동적 상태 유지(Active Set)특정 시점에서 유효한 객체(선분, 점 등)를 동적으로 유지하면서 연산 수행선분 교차 문제에서는 현재 활성화된 선분들을 유지하며 교차 여부 판별예시선분 교차 판별 : 여러 개의 선분들이 주어졌을 때, 교차하는..

[프로그래머스, JAVA] 옹알이 (1)

https://school.programmers.co.kr/learn/courses/30/lessons/120956 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이 문제에서, test case 2번의 wyeoo가 힌트가 된다. 단순히 replace를 공백이 아닌 빈 문자열("")로만 해 주게 되면, 다음과 같은 순서로 변경되어 발음할 수 있는 문자 취급이 되기 때문이다. 1. wyeoo에서의 ye제거 -> woo2. woo에서의 woo 제거 -> ""3. 발음할 수 있게 됨 그러므로, 바로 공백이 아닌, 다른 문자로 변경한 후 그 문자만큼을 제거하여 발음할 수 있는지 아닌지를 판별해 주어야 한다.cl..

[프로그래머스, JAVA] 문자열 밀기

https://school.programmers.co.kr/learn/courses/30/lessons/120921# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  import java.util.*;class Solution { public int solution(String A, String B) { int answer = -1; //A : 밀어야 할 문자 //B : 정답 문자 String answerStr = A; String a = A; String lastChar = ""; for(int i=0; i

반응형