'7월 1일' 오십세 번째 기록 [TIL]

가은·2024년 7월 1일
0

I Learned [본 캠프]

목록 보기
86/135
post-thumbnail

👩‍🏫 오늘의 출석

❓오십세 번째, 9 to 9을 해 본 소감❓

내일모레 2차 모의 면접 날인데 또 어떻게 준비하고, 대비를 해야 할지 막막하다. 분명 한 번 해봤는데 왜 여전히 감이 안 올까.. 그래도 처음 모의 면접을 준비할 때보다는 조금 덜 떨리는 것 같기도 한데... 막상 면접 날에는 어떨지 잘 모르겠다. 안 떨고, 준비한 것만 물어보셔서 기분 좋게 당당하게!!! 면접을 보고 싶다..

📑오늘 학습한 내용

🧩오늘의 알고리즘 : 둘만의 암호 🧩

문제 : 두 문자열 s와 skip, 그리고 자연수 index가 주어질 때, 다음 규칙에 따라 문자열을 만들려 합니다. 암호의 규칙은 다음과 같습니다.

문자열 s의 각 알파벳을 index만큼 뒤의 알파벳으로 바꿔줍니다.
index만큼의 뒤의 알파벳이 z를 넘어갈 경우 다시 a로 돌아갑니다.
skip에 있는 알파벳은 제외하고 건너뜁니다.
예를 들어 s = "aukks", skip = "wbqd", index = 5일 때, a에서 5만큼 뒤에 있는 알파벳은 f지만 [b, c, d, e, f]에서 'b'와 'd'는 skip에 포함되므로 세지 않습니다. 따라서 'b', 'd'를 제외하고 'a'에서 5만큼 뒤에 있는 알파벳은 [c, e, f, g, h] 순서에 의해 'h'가 됩니다. 나머지 "ukks" 또한 위 규칙대로 바꾸면 "appy"가 되며 결과는 "happy"가 됩니다.

두 문자열 s와 skip, 그리고 자연수 index가 매개변수로 주어질 때 위 규칙대로 s를 변환한 결과를 return하도록 solution 함수를 완성해주세요.

제한사항
5 ≤ s의 길이 ≤ 50
1 ≤ skip의 길이 ≤ 10
s와 skip은 알파벳 소문자로만 이루어져 있습니다.
skip에 포함되는 알파벳은 s에 포함되지 않습니다.
1 ≤ index ≤ 20

import java.util.*;
import java.lang.*;
class Solution {
    public String solution(String s, String skip, int index) {
        String[] temp = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
                          "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
                          "w", "x", "y", "z"};
        List<String> alphabets = new ArrayList<>(Arrays.asList(temp));
        
        for(int i=0; i<skip.length(); i++){
            alphabets.remove(String.valueOf(skip.charAt(i)));
        } 
        
        StringBuilder sb = new StringBuilder();
        for(int i=0; i<s.length(); i++){
            int sIdx = alphabets.indexOf(String.valueOf(s.charAt(i)));
            int nextSIdx = (sIdx+index)%alphabets.size();
            sb.append(alphabets.get(nextSIdx));
        }
        return sb.substring(0);
    }
}

🧩 오늘의 SQL : 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 🧩

문제 : USED_GOODS_BOARD와 USED_GOODS_FILE 테이블에서 조회수가 가장 높은 중고거래 게시물에 대한 첨부파일 경로를 조회하는 SQL문을 작성해주세요. 첨부파일 경로는 FILE ID를 기준으로 내림차순 정렬해주세요. 기본적인 파일경로는 /home/grep/src/ 이며, 게시글 ID를 기준으로 디렉토리가 구분되고, 파일이름은 파일 ID, 파일 이름, 파일 확장자로 구성되도록 출력해주세요. 조회수가 가장 높은 게시물은 하나만 존재합니다.

SELECT CONCAT('/home/grep/src/',B.BOARD_ID,'/',FILE_ID,FILE_NAME,FILE_EXT) AS FILE_PATH
FROM USED_GOODS_BOARD A
INNER JOIN USED_GOODS_FILE B ON A.BOARD_ID = B.BOARD_ID
WHERE VIEWS = (SELECT MAX(VIEWS)
                FROM USED_GOODS_BOARD)
ORDER BY FILE_ID DESC;

시큐리티와 인증인가 관련 녹강을 보면서 인증인가 관련 부분 공부를 다시 하며 시간을 보냈다. 어렵다, 어려워..
AWS 강의도 들으며 내일부터는 2차 모의 면접 준비를 하며 시간을 보낼 예정이다.

0개의 댓글