230215 TIL #9 프로그래머스 코딩테스트

김춘복·2023년 2월 15일
0

TIL : Today I Learned

목록 보기
9/571

230215 Today I Learned

오늘부터 항해99에서 코딩테스트를 본격적으로 시작했다. 프로그래머스에서 쉬운레벨부터 시작했다. 오늘의 TIL은 어제 못한 것들과 코딩테스트에서 어려웠던 것을 정리해 보겠다.

IntelliJ 팁

  • intelli J 자동완성 축약어
    향상된 for문 완성 : iter
    일반 for문 완성 : itar
    자동 null 체크 if문 완성 : ifn
    자동 not null 체크 if문 완성 : inn
    ctrl + shift + R : 현재 위치의 메인 메서드를 run
    sout : System.out.println() 자동 입력
    soutv : System.out.println()("변수 = " + 변수); 까지 자동 입력
    soutm : System.out.println(Class.method); 자동입력
    soutp : System.out.println("입력받은 파라미터 = " + 파라미터); 까지 자동입력

달력

  1. switch case문으로 일일이 하다가 코드가 길어져서 stop

  2. 배열 week에 요일두고 고민하다가 총 일수를 계산해서 %7으로 배정해서 해결.

  • 해결
class Solution {
    public String solution(int a, int b) {
        String answer = "";
        
        String[] week = {"THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"};
        int[] lastDate = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

        int days = b;

        for (int i = 1; i < a; i++) {
            days += lastDate[i - 1];
            System.out.println("days = " + days);
        }

        int n = days%7;
        answer = week[n];
        
        return answer;
    }
}
  • 알게된 점 : 요일 문제는 변수하나에 누적합을 쌓아서 계산하면 좋다.

기타

  • 배열의 index는 0~.length-1까지!
    .substring 같은걸 쓰면 from<= x < to 니까
    to값에 .length 그대로 쓰면 범위 끝까지 설정 된다!!

알고리즘 세션 메모

IDE 설정 세팅 예시

프로그래머스에서 class 아랫 부분을 그대로 들고와서 public 뒤에 static만 넣어주고,
클래스 안에 main만들고 sout(solution(여기 입력값))으로 하면된다.

  • 좋은알고리즘? 시간복잡도 공간복잡도 정확성 작업량 최적성

  • 시간복잡도와 공간복잡도 모두를 줄이기는 어려움. 보통 반비례적 관계.

  • IntelliJ에서 시간복잡도를 찍어 볼 수 있다.

내일 알아 볼 것

  • String, StringBuffuer, StringBuilder
    자바개발자 기술면접 질문에 String, StringBuffuer, StringBuilder의 차이점 물어본다니 공부해보자

  • X만큼 간격이 있는 n개의 숫자에서
    (long)x(i+1)은 되는데 (long)(x(i+1))은 안됨. 왜?
    오버플로우가 왜 되고 안되고 하는지?

profile
Backend Dev / Data Engineer

0개의 댓글