본문 바로가기
What I Learned

[NBCAMP | Spring 6기] 1일차 TIL + Hash Map, Queue / JOIN / git 활용법 / JQuery

by ㅇ달빛천사ㅇ 2024. 7. 15.
728x90

👈  이전글

[NBCAMP | JAVA 6기] 49일차 TIL + Queue, Brute Force / DISTINCT, IN, WHERE절 서브쿼리, MAX()


KDT 실무형 스프링 백엔드 엔지니어 양성과정 6기


🗝 오늘의 학습 키워드 :Hash Map Queue / JOIN LENGTH()gitJQuery



📖 공부한 내용 본인의 언어로 정리하기

🚩 Git 활용 특강 내용 정리

 

[Git & Github] Git & Github 기초 사용법

⌛ Git Bash 설치하기 Git - DownloadsDownloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for

ajtwltsk.tistory.com


🚩 알고리즘 코드카타

💬 가장 가까운 같은 글자


💡 Solution with HashMap

import java.util.HashMap;

class Solution {
    public int[] solution(String s) {
        int len = s.length();
        int[] answer = new int[len];
        char[] cArr = s.toCharArray();
        HashMap<Character, Integer> hm = new HashMap<>();
        
        for (int i = 0; i < len; i++) {
            char c = cArr[i];
            int n = i - hm.getOrDefault(c, i + 1);
            
            answer[i] = n;
            hm.put(c, i);
        }
        
        return answer;
    }
}
채점 결과

💬 스택/큐 > 프로세스


💡 Solution with Array

import java.util.Arrays;

class Solution {
    public int solution(int[] priorities, int location) {
        int answer = 0;
        int[] arr = priorities.clone();
        Arrays.sort(arr);
        
        int idx = 0;
        
       for (int i = arr.length - 1; i >= 0; i--) {
            int cur = arr[i];

            while (priorities[idx] != cur) {
                idx = (idx + 1) % priorities.length;
            } 
           
            priorities[idx] = 0;
            answer++;
          
           if (idx == location) {
                break;
            }
        } 
        
        
        return answer;
    }
}
채점 결과

💡 Solution with Queue

import java.util.Arrays;
import java.util.Queue;
import java.util.LinkedList;

class Solution {
    public int solution(int[] priorities, int location) {
        int answer = 0;
        int[] arr = priorities.clone();
        Arrays.sort(arr);
        Queue<Integer> q = new LinkedList<>();
        
        for (Integer p : priorities) {
            q.offer(p);
        }
        
        for (int i = arr.length - 1; i >= 0; i--) {
            Integer p = arr[i];
            
            while (q.peek() != p) {
                q.offer(q.poll());
                location--;
                
                if (location < 0) {
                    location += q.size();
                }
            }
            
            q.poll();
            answer++;
            
            if (location == 0) {
                break;
            } else if (--location < 0){
                location += q.size();
            }
            
        }
        
        return answer;
    }
}
채점 결과

🚩 SQL 코드카타

💬 JOIN > 5월 식품들의 총매출 조회하기


💡 Oracle

SELECT P.PRODUCT_ID PRODUCT_ID
       , P.PRODUCT_NAME PRODUCT_NAME
       , SUM(P.PRICE * O.AMOUNT) TOTAL_SALES
FROM FOOD_PRODUCT P
     , FOOD_ORDER O
WHERE P.PRODUCT_ID = O.PRODUCT_ID
      AND TO_CHAR(O.PRODUCE_DATE, 'yyyy-mm') = '2022-05'
GROUP BY P.PRODUCT_ID
         , P.PRODUCT_NAME
ORDER BY TOTAL_SALES DESC
         , PRODUCT_ID ASC;
실행 결과

💡 MySQL

SELECT P.PRODUCT_ID PRODUCT_ID
       , P.PRODUCT_NAME PRODUCT_NAME
       , SUM(P.PRICE * O.AMOUNT) TOTAL_SALES
FROM FOOD_PRODUCT P
     , FOOD_ORDER O
WHERE P.PRODUCT_ID = O.PRODUCT_ID
      AND DATE_FORMAT(O.PRODUCE_DATE, '%Y-%m') = '2022-05'
GROUP BY PRODUCT_ID
         , PRODUCT_NAME
ORDER BY TOTAL_SALES DESC
         , PRODUCT_ID ASC;
실행 결과

💬 1683. Invalid Tweets


💡 Oracle & MySQL

SELECT TWEET_ID
FROM TWEETS
WHERE LENGTH(CONTENT) > 15;
실행 결과

오늘의 회고

오늘 드디어 내일배움캠프 Spring 6기 본교육이 시작되었다.
먼저 9시에 출석 체크를 하고
zoom으로 OT를 들었다.
앞으로 무엇을 해야할 지에 대한 소개를 간단히 해 주셨다.
OT가 끝나고 zep에서 내가 배정된 13조로 가서
팀장도 사다리타기로 뽑고
각자 자신의 소개도 작성하였다.
팀 이름은 한번에 정하려고 하니 아이디어가 잘 안나와서
오후에 정하기로 하였다.
나도 다른 팀원이 tistory 2명 velog 3명으로 ve3ti2라고 제안하길래
채널 24시처럼 23시간 열공하는 팀이라는 의미로
TV23이라고 제안을 해보았는데 내 이름이 채택 되지는 않았고
팀원들간 서로의 이야기를 잘 들어주자는 의미로 LISTEN24로 이름을 지었다.
팀 규칙으로 식사 시간을 정하고
앞으로 미니 프로젝트를 어떻게 해야할지 고민하다
오늘 코드카타 문제를 풀었다.
GIT 특강을 들었다.
GIT 사용법에 대한 내용이었는데
다들 적극적으로 대답도 잘하고 선생님께서도 반복적으로 배운 내용을
잘 기억하고 있는지 여러번 반복 설명해 주셔서 정말 좋았다.
날이 더워 옥탑 바깥에서 바람을 쐬면서 들었는데도 더워서
뒤에 30분 정도 졸긴했는데 녹화영상을 보고 보충을 하였다.
오후에는 웹 강의 아직 듣지 못한 부분을 들었는데 JQuery 관련 내용이었다.
내가 코딩한대로 동작하는게 너무 재밌어서 신나게 들었다.


💬 무엇을 새롭게 알았는지

GIT 사용법에 대해 알게 되었다.




💭 내일 학습할 것은 무엇인지

데일리 루틴
인강 듣고 실습하기




📚 참고 자료




👉  다음글

[NBCAMP | Spring 6기] 2일차 TIL + 완전 탐색, String / JOIN






 
728x90


Top