일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 프로그래머스
- 자료구조
- Bruteforce
- microflow
- 백트래킹
- Mendix
- algorithm
- SQL
- 반효경교수님
- 매개변수 탐색
- 멘딕스
- 완전탐색
- 자바
- 스택
- 알고리즘
- Recursion
- 그래프
- MySQL
- lcap
- 이분탐색
- dfs
- Sort
- git
- 재귀
- 트리
- domain model
- 가중치없는그래프
- 해시맵
- 집합
- 정렬
- Today
- Total
목록분류 전체보기 (144)
mondegreen
1. 월별 잡은 물고기 수 구하기1) 집계 함수를 사용한 뒤에는 WHERE 절을 사용할 수 없고 대신 HAVING 절을 사용해야 한다.SELECT COUNT(ID) AS FISH_COUNT, MONTH(TIME) AS MONTHFROM FISH_INFOGROUP BY MONTHHAVING COUNT(ID) > 0ORDER BY 22. 물고기 종류 별 잡은 수 구하기1) SELECT 문에서 FISH_NAME을 사용하고 싶다면 GROUP BY 함수에서 같이 집계해줘야 한다..SELECT COUNT(ID) AS FISH_COUNT, FISH_NAMEFROM FISH_INFOINNER JOIN FISH_NAME_INFO USING (FISH_TYPE)GROUP BY FISH_TYPE, FISH_NAMEORDER..
1. 가장 비싼 상품 구하기SELECT MAX(PRICE) AS MAX_PRICEFROM PRODUCT2. 최댓값 구하기SELECT MAX(DATETIME) AS 시간 FROM ANIMAL_INS3. 잡은 물고기 중 가장 큰 물고기의 길이 구하기1) 추출한 데이터에 문자열 형식으로 특정 단어를 덧붙여주려면 CONCAT를 활용하면 된다.SELECT CONCAT(MAX(LENGTH),'cm') AS MAX_LENGTH FROM FISH_INFO4. 가격이 제일 비싼 식품의 정보 출력하기SELECT * FROM FOOD_PRODUCTWHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT)SELECT * FROM FOOD_PRODUCTORDER BY PRICE DESCLIMI..
import java.util.*; class Solution { public static int [] answer; public static HashMap chain; public static HashMap order; public int[] solution(String[] enroll, String[] referral, String[] seller, int[] amount) { answer = new int[enroll.length]; chain = new HashMap(); order = new HashMap(); for(int i =0; i
class Solution{ public int solution(int n, int a, int b) { int answer = 0; // 트리로 구현했을 때 1라운드의 위치를 인덱스로 두고(리프노드) // /2를 해가며 부모노드가 같아졌을 때 만나는 것으로 판정 // /2한 횟수가 지나 온 라운드 수 a = a+n-1; b = b+n-1; while(a!=b){ a /=2; b /=2; answer++; } return answer; } }
동명이인이 있다는 지시문에 key 값으로 이름을 활용하지 못할 것이라고 생각했다. 그래서 각 배열을 정렬한 후 완주한 배열의 인덱스와 참가한 인덱스의 이름이 서로 맞지 않는다면 그 친구가 낙오한 것이기 때문에 완주한 친구들을 맵에서 지워가면서 확인했다. 정렬을 해야한다는 단점이 존재했다. import java.util.*; class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; Arrays.sort(participant); Arrays.sort(completion); HashMap completed = new HashMap(); for(int i = 0; i< complet..
구하고자 하는 것은 특정일자의 가격을 기준으로 가격이 떨어진 날까지의 기간이므로 그 날짜들을 구분할 수 있는 인덱스를 가지고 활용해야 한다. 따라서 스택에 들어갈 값은 배열의 인덱스이다. 여기서 스택을 활용할 수 있다고 생각하게 되는 지점은 앞으로의 주식 가격이 아닌 이전 주식가격들과 비교해서 기간을 구한다는 점이다. 따라서 현재 주식 가격보다 가장 최근 주식 가격이 더 높다면 해당 가격을 가진 날짜는 하루 동안 떨어지지 않은 것이고 해당 날짜를 스택에서 제거한다. 정답 배열에 값을 넣을 때는 제거될 스택의 값이 더 이상 고려되지 않아도 되는 값이고 구간이 정해지는 값이므로 제거될 스택의 값을 정답 배열의 인덱스로 잡고 현재 넣고자 하는 인덱스와의 차를 구해 기간을 담으면 된다. 그리고 또 다시 가장 최..
스택을 deque로 활용함으로써 자료구조를 양껏 활용한 풀이이다. 다만 값을 빼고 넣는 순서를 헷갈리기 쉽다. import java.util.*; class Solution { public int solution(String s) { char[] target = s.toCharArray(); // 기본 문자열 스택에 담아 놓기 Deque base = new ArrayDeque(); for(int i = 0; i
Vector를 상속받아 구현되어 있는 Stack 대신 Deque로 stack을 구현해서 문제를 풀었다. import java.util.*; class Solution { boolean solution(String s) { char [] str = s.toCharArray(); Deque stk = new ArrayDeque(); for(char i : str){ if(i == '(') stk.push(i); else{ if(!stk.isEmpty() && stk.peek()=='(') stk.pop(); else return false; } } return stk.isEmpty(); } }
[프로그래머스 문제 / MySQL 기준] 1. 3월에 태어난 여성 회원 목록 출력하기1) 날짜의 형식을 별도로 지정하고 싶을 때 DATE_FORMAT(컬럼명, "날짜 형식") 으로 지정한다.2) 컬럼의 값 중 특정 문자 포함여부를 확인하고 싶을 때 LIKE "%문자열%" 로 확인한다.3) 특정 컬럼을 출력하고자 하는데 NULL이 아닌 값을 출력할 때는 WHERE 컬럼명 IS NOT NULL를 사용한다. SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, "%Y-%m-%d") FROM MEMBER_PROFILEWHERE DATE_OF_BIRTH LIKE "%-03-%"AND GENDER = "W"AND TLNO IS NOT NULLORDER..
[Part2-Chapter02-Clip01] -백준 10828 스택 자바 공식문서에 따르면 스택 같은 경우 아주 예전 자료구조인 Vector를 상속해 만든 Stack 보다 Deque를 이용해 stack을 구현하는 것을 권장하고 있다. deque은 양방향에서 삽입 삭제가 가능하기 때문에 스택과 큐로 모두 구현 가능하기 때문이다. 그럼 이 Deque을 활용해서 stack 문제를 풀어보자. package BaekJoon.stack; import java.util.*; import java.io.*; public class BJ10828 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedRead..