ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [0818]
    TIL 2023. 8. 19. 01:44

     

    알고리즘

     

    1. 약수구하기

    정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
    import java.util.*;
    
        class Solution {
            public int[] solution(int n) {
                List<Integer> list=new ArrayList<>(); //리스트선언
                for(int i=1; i<=n; i++){
                    if(n%i==0){	//n을 1부터 나눠서 0이 되는 i를 리스트 추가
                    list.add(i);
            }
            }
            return list.stream().mapToInt(x->x).sorted().toArray();//스트림 사용
        }
    }

    return list.stream()   list를 stream으로 변환.

       .mapToInt(x -> x)   변환작업. 타입을 Int로 변환한다.

       .sorted()   오름차순 정렬

       .toArray();   배열로 변환


    2. 피자나눠먹기(2)

    머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다.
    피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.
    class Solution {
        public int solution(int n) {
            int answer = 1;
            while(answer*6%n!=0){
                answer++;
            }
            return answer;
        }
    }

    피자 조각수가 6배수인것을 이용해 n을 나눠 다 떨어질때까지 반복문 돌림


    3. 369게임

    머쓱이는 친구들과 369게임을 하고 있습니다.
    369게임은 1부터 숫자를 하나씩 대며 3, 6, 9가 들어가는 숫자는 숫자 대신 3, 6, 9의 개수만큼 박수를 치는 게임입니다.
    머쓱이가 말해야하는 숫자 order가 매개변수로 주어질 때, 머쓱이가 쳐야할 박수 횟수를 return 하도록 solution 함수를 완성해보세요.
    class Solution {
        public int solution(int order) {
        int answer = 0;
        int count = 0;
    
            while(order != 0) {	
            if(order % 10 == 3 || order % 10 == 6 || order % 10 == 9) {//나머지가 3,6,9일때 ++
            count++;
            }
            order /= 10;
            }
    
        answer = count;
        return answer;
    }
    }

     


     

     

    취업 대비 기술면접 준비

     

    mvc 패턴에 대해서 설명해주세요.

    mvc패턴이란 Model-View-Controller 의 약어로 애플리케이션을 데이터, 화면, 작동로직, 세 가지 역할로 구분한 개발 방법입니다.
    Google의 Angular JS, PHP의 CODEIGNITER, Python의 django, Facebook의 React가 대표적인 예시입니다.
    mvc패턴은 프론트와 백 분리가 원활해 유지보수가 쉽고 확장하기 좋은 장점이 있지만 View와 Model이 서로 의존성을 띄어 한 controller에 다수의 View와 Model이 얽혀 설계가 어렵단 단점이 있습니다.

     

    RDBMS의 정규화에 대해 설명해주세요.

    RDBMS의 정규화란 데이터베이스의 무결성을 위해 수행되는 과정입니다.
    정규화가 수행됨으로서 데이터베이스의 테이블을 구조화하고 데이터 중복을 최소화 시켜 데이터의 일관성과 무결성을 유지하며, 데이터 저장 및 관리의 효율성을 높일수 있습니다.
    정규화는 과정별로 단계가 있는데 테이블의 컬럼이 원자값(하나의 값)을 갖도록 하는 제 1정규화,
    제 1정규화에서 부분적 함수종속을 제거한 제 2 정규화,
    제 2정규화에서 이행적 함수 종속을 제거한 제 3정규화,
    제 3 정규화에서 결정자가 후보키가 아닌 것을 제거한 BCNF 정규화,
    BCNF 정규화에서 다중값 종속을 제거한 제 4정규화,
    제 4정규화에서 조인 종속(분해하여 다시 조인했을 때 데이터손실이나 불필요한 데이터가 생기는 것)을 제거한 제 5정규화가 있습니다.

     


     

    문제와 해결

     

    public void addInterest(Long id1, Long id2) {   //관심 유저 추가
        User reciver = findUser(id1);
        User sender = findUser(id2);
    
        if (reciver != null && sender != null) {
            Interest interest = new Interest(reciver.getId(), sender.getId());
            interestRepository.save(interest);
        } else {
            throw new IllegalArgumentException("관심 유저 추가에 실패했습니다.");
        }
    }

    관심(즐겨찾기? 팔로우?) 기능을 만들었다.

    기존엔 user,post,comment 등 각기 다른 엔티티에 담았다가 user랑 user에 어케 담지! 고민했는데 변수명을 다르게하면 됬었다... 너무 당연해서 까먹어버리는,,,,,

     

     

     

     

    'TIL' 카테고리의 다른 글

    [0822]String.valueOf() , Object.toString()  (0) 2023.08.23
    [0821]Could not create query for public abstract boolean 오류  (0) 2023.08.21
    [0817]cannot resolve symbol 에러  (0) 2023.08.18
    [0816]  (0) 2023.08.17
    [0808]  (0) 2023.08.08
Designed by Tistory.