TIL(Today I Learned)_데일리루틴_24.11.16.Sat

728x90

데일리루틴 SQL

MySQL 조건에 맞는 도서 리스트 출력하기 정답입니다.
SELECT BOOK_ID, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') FROM BOOK
WHERE CATEGORY LIKE '인문' AND DATE_FORMAT(PUBLISHED_DATE, '%Y') = 2021
ORDER BY PUBLISHED_DATE

 

  • SELECT BOOK_ID, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d')
    • BOOK_ID: 테이블에서 BOOK_ID 컬럼 값을 선택합니다.
    • DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d'): PUBLISHED_DATE 컬럼의 값을 YYYY-MM-DD 형식의 문자열로 변환하여 선택합니다.
  • FROM BOOK
    • BOOK 테이블에서 데이터를 가져옵니다.
  • WHERE CATEGORY LIKE '인문'
    • CATEGORY 컬럼의 값이 '인문' 문자열과 일치하는(또는 포함하는) 행만 필터링합니다.
    • LIKE는 부분 일치를 확인하는 데 사용되며, 여기서는 특정 문자열만 직접 일치시킵니다.
  • AND DATE_FORMAT(PUBLISHED_DATE, '%Y') = 2021
    • PUBLISHED_DATE 컬럼의 값을 연도로 변환한 결과가 2021인 행만 필터링합니다.
    • DATE_FORMAT(PUBLISHED_DATE, '%Y')는 PUBLISHED_DATE에서 연도(%Y)만 추출합니다.
  • ORDER BY PUBLISHED_DATE
    • PUBLISHED_DATE 컬럼을 기준으로 오름차순(기본값) 정렬합니다.
    • 날짜가 오래된 순서대로 결과를 정렬하여 표시합니다.

 


데일리루틴 알고리즘

Java 이상한 문자 만들기 정답입니다.
class Solution {
    public String solution(String s) {
        StringBuilder result = new StringBuilder();

        String[] words = s.split(" ", -1);

        for (int i = 0; i < words.length; i++) {
            StringBuilder wordResult = new StringBuilder();
            String word = words[i];

            for (int j = 0; j < word.length(); j++) {
                char c = word.charAt(j);
                if (j % 2 == 0) {
                    wordResult.append(Character.toUpperCase(c));
                } else {
                    wordResult.append(Character.toLowerCase(c));
                }
            }

            result.append(wordResult);
            if (i < words.length - 1) {
                result.append(" ");
            }
        }

        return result.toString();
    }
}

 

  • 문자열 분리
    • 입력 문자열을 공백 기준으로 나눕니다.
    • split(" ", -1) 옵션을 사용해, 연속된 공백도 포함하도록 처리합니다.
    예: "hello world" → ["hello", "", "world"]
  • 단어별 변환
    • 각 단어를 순회하며, 문자 하나씩 처리합니다.
    • 짝수 인덱스(j % 2 == 0)의 문자는 대문자로, 홀수 인덱스는 소문자로 변환합니다.
    • 변환 결과는 단어별로 StringBuilder에 저장합니다.
  • 단어 조합
    • 변환된 단어들을 공백으로 연결하여 최종 문자열을 만듭니다.
    • 마지막 단어 뒤에는 공백을 추가하지 않습니다.

 

728x90
반응형
LIST