2024. 10. 15. 12:33ㆍ부트캠프 TIL
1. 프로그래머스 이용한 sql과 알고리즘 문제 해결
1-1) sql 문제 : 대여 기록이 존재하는 자동차 리스트 구하기
ㄴ 문제 : 자동차정보테이블과 자동차대여기록테이블에서 자동차 종류가 "세단"이고, 10월에 대여를 시작한 자동차 ID 리스트를 출력하는 SQL문을 작성해주세요. 자동차ID는 중복이 없어야하고, 자동차ID로 내림차순 정렬해주세요.
ㄴ 설명_1 : 조회할 컬럼 체크 (CAR_ID)
ㄴ 설명_2 : 테이블 2개 연동 JOIN할 컬럼체크 (CAR_ID)
ㄴ 설명_3 : 자동차 종류 세단 CAR_TYPE "세단"인 데이터
ㄴ 설명_4 : 대여 시작이 10월 - DATE_FORMAT()사용해서 월만 검색 "10"
ㄴ 설명_5 : 자동차ID 중복되면 안됨 - DISTINCT(CAR_ID)로 진행
ㄴ 설명_6 : 자동차 ID 내림차순 정렬 - ORDER BY DESC
ㄴ 실제 쿼리 :
SELECT DISTINCT(a.CAR_ID)
FROM CAR_RENTAL_COMPANY_CAR a LEFT JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY b ON
a.CAR_ID = b.CAR_ID
WHERE a.CAR_TYPE = "세단"
AND DATE_FORMAT(b.START_DATE, "%m") = "10"
ORDER BY a.CAR_ID DESC
1-2) 알고리즘 문제 : 시저암호
class Solution {
public String solution(String s, int n) {
String answer = "";
int N = 0;
for(int i = 0; i < s.length(); i++){
N = s.charAt(i) + n;
if(s.charAt(i) == ' '){
answer += s.charAt(i);
}else if(s.charAt(i) < 91 && N > 90 || N > 122){
N -= 26;
answer += (char) N;
} else{
answer += (char) N;
}
}
return answer;
}
}
ㄴ 알파벳 대소문자 아스키코드를 활용해야하는 문제이다.(검색해서 확인했다)
ㄴ charAt를 활용해서 s의 한글자씩 추출하여 n만큼 더해준다(시저암호 공식)
ㄴ 공백일 경우와 알파벳 아스키코드 범위를 벗어나는 경우 그 외에 경우 3가지 조건으로 answer에 값을 적용한다.
※ 오늘 알고리즘 문제는 풀지않고 바로 답안을 찾아보고 풀이를 해석했다. 생각할 겨를이 없는 상황이라 이렇게 찾아보면서 공부하는 것으로 대체하였다..
'부트캠프 TIL' 카테고리의 다른 글
[57] 부트캠프 TIL - 본캠프 39일차 (10) | 2024.10.17 |
---|---|
[56] 부트캠프 TIL - 본캠프 38일차 (4) | 2024.10.16 |
[54] 부트캠프 TIL - 본캠프 36일차 (0) | 2024.10.14 |
[53] 부트캠프 TIL - 본캠프 35일차 (6) | 2024.10.11 |
[52] 부트캠프 TIL - 본캠프 34일차 (9) | 2024.10.10 |