오늘부터 항해99에서 코딩테스트를 본격적으로 시작했다. 프로그래머스에서 쉬운레벨부터 시작했다. 오늘의 TIL은 어제 못한 것들과 코딩테스트에서 어려웠던 것을 정리해 보겠다.
시도 :
switch case문으로 일일이 하다가 코드가 길어져서 stop
배열 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;
}
}
IDE 설정 세팅 예시
프로그래머스에서 class 아랫 부분을 그대로 들고와서 public 뒤에 static만 넣어주고,
클래스 안에 main만들고 sout(solution(여기 입력값))으로 하면된다.
좋은알고리즘? 시간복잡도 공간복잡도 정확성 작업량 최적성
시간복잡도와 공간복잡도 모두를 줄이기는 어려움. 보통 반비례적 관계.
IntelliJ에서 시간복잡도를 찍어 볼 수 있다.
String, StringBuffuer, StringBuilder
자바개발자 기술면접 질문에 String, StringBuffuer, StringBuilder의 차이점 물어본다니 공부해보자
X만큼 간격이 있는 n개의 숫자에서
(long)x(i+1)은 되는데 (long)(x(i+1))은 안됨. 왜?
오버플로우가 왜 되고 안되고 하는지?