2023.04.25.TUE

ronglong·2023년 4월 25일

[ 프로그래머스 ]

  • 소수 만들기
    : 정답률 60%. 조합 문제였고, 나는 3중 for문을 사용했다. 시간복잡도 구려보였는데, 풀고 보니까 다른 사람들도 이런 식으로 풀었음.
import java.lang.*;

class Solution {
    public int solution(int[] nums) {
        int answer = 0;

        for(int i=0; i<nums.length; i++){
            for(int j=i+1; j<nums.length; j++){
                for(int k=j+1; k<nums.length; k++){
                    if(isPrime(nums[i]+nums[j]+nums[k])) answer++;
                }
            }
        }
        return answer;
    }

    boolean isPrime(int num){
        if(num%2==0) return false;
        for(int i=2; i<=Math.sqrt(num); i++){
            if(num%i==0) return false;
        }
        return true;
    }
}
  • 로또의 최고 순위와 최저 순위
    : 정답률 56%. 코드 작성하기 전에 수도 코드를 조금씩 쓰기 시작했다.
import java.util.*;

class Solution {
    public int[] solution(int[] lottos, int[] win_nums) {
        //0이 아닌 숫자들이 몇 개나 당첨되었는지 카운트 -> 최저 순위
        //0인 숫자들이 모두 당첨된 경우를 더하면 -> 최고 순위
        int min = 0;
        int zero = 0;

        for(int i=0; i<6; i++){
            for(int j=0; j<6; j++){
                if(lottos[i]==0) {
                    zero++;
                    break;
                }
                if(lottos[i]==win_nums[j]) {
                    min++;
                    break;
                }
            }
        }

        int max = min+zero;

        if(min==0) min =1;
        if(max==0) max =1;

        return new int[]{7-max, 7-min};
    }
}

[ 자료구조 ]

  • 기수정렬 : 값을 비교하지 않고 각 자릿수만 비교. 10개의 큐 이용. 시간복잡도 짧음.
  • DFS(깊이 우선 탐색)
    • 그래프 완전 탐색, 재귀함수, 스택
    • 방문 여부 체크 배열, 인접 리스트로 그래프 표현
  • BFS(너비 우선 탐색)
    • 그래프 완전 탐색, FIFO, , 가까운 노드부터 탐색
    • 방문 여부 체크 배열, 인접 리스트로 그래프 표현

[ 유어클래스 다시 읽기 ]

  • section1
    • 컬렉션(Collection)
      • 열거형(Enum)
      • 제네릭(Generic)
        • 클래스 변수(static 변수)에는 타입 매개변수T 사용 불가
        • 타입 매개변수 치환 시, 원시 타입이 아닌 래퍼 클래스 지정
        • 타입 매개변수에 상속, 다형성 적용 가능
        • 제네릭 클래스, 제네릭 메서드
        • 제네릭 메서드 : static 메서드에서 사용 가능. 호출 시점에 타입 지정.
        • 와일드카드 : ?
          https://mangkyu.tistory.com/241
      • 예외 처리(Exception Handling)
        • 컴파일 에러(신택스 에러, 컴파일러가 감지), 런타임 에러(JVM이 감지), 논리적 에러
        • 에러, 예외
        • Exception : 예외 최상위 클래스
        • try ~ catch ~ finally
        • throw : 임의로 예외 발생 시키기

[ 느낀 점 ]

스택 문제 2개 풀다가 계속 통과 못해서 일단 접어뒀다.
DFS, BFS도 아직은 못 풀겠음,,🥲
내용을 검색해서 좀 더 봐야할 것 같다.
알고리즘이랑 자료구조... 죽여줘...

차근히 조금씩 꾸준히 하자고 생각하면서도, 할 거 너무 많은데 투자 시간과 노력이 부족한 느낌에 조급한 마음도 들고 그렇다.

0개의 댓글