본문 바로가기

: IT/프로그래머스

[코딩테스트] MySQL > SELECT 문 (6)

반응형

1. 오랜 기간 보호한 동물(2)

SELECT O.ANIMAL_ID, O.NAME
FROM ANIMAL_OUTS O LEFT JOIN ANIMAL_INS I ON O.ANIMAL_ID = I.ANIMAL_ID
ORDER BY DATEDIFF(O.DATETIME, I.DATETIME) DESC
LIMIT 2

- DATEDIFF(A,B) 두 날짜 사이 일수를 구하는 함수
- 두 날짜 사이의 간격이 긴 순서 중 상위 2개를 조회한다


2. DATETIME에서 DATE로 형 변환

SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') AS '날짜'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID ASC

- DATE_FORMAT(A, '포맷') : 날짜 A를 포맷에 맞춰서 변환해서 조회한다


3.완주하지 못한 선수

import java.util.*;

class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer = "";
  
        Map<String, Integer> map_p = new HashMap<>();
        Map<String, Integer> map_c = new HashMap<>();
        
        for(String part : participant ){
            map_p.put(part, Collections.frequency(Arrays.asList(participant), part));
            map_c.put(part, Collections.frequency(Arrays.asList(completion), part));
            if(map_p.get(part)!=map_c.get(part)) {
                answer = part;
                break;
            }
        }
        return answer;
    }
}

 

반응형