코딩 테스트

    [프로그래머스][Level3][JAVA] 멀리 뛰기

    [문제 설명] programmers.co.kr/learn/courses/30/lessons/12914 코딩테스트 연습 - 멀리 뛰기 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2 programmers.co.kr [풀이 내용] * 사용 알고리즘 : DP 1. brute force알고리즘을 사용해서 중복 순열로 풀면 시간초과가 뜬다. 문제의 규칙을 찾아보니 피보나치 수열과 같았다. 1) 1칸일 때 -> 1가지 - 1칸 2) 2칸일 때 -> 2가지 - 1칸 1칸 - 2칸 3) 3칸일 때 -> 3가지 - 1칸 1칸 1칸..

    [프로그래머스][Level3][JAVA] 이중우선순위큐

    [문제 설명] programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr [풀이 내용] JAVA의 PriorityQueue 자료구조를 이용하여 해결하는 문제다. 이 때 기억해야할 점은 다음 두가지이다. 1. JAVA의 PriorityQueue는 min heap이 default이다. 2. max heap을 구현하고 싶다면 Collections.reverseOrder() 옵션을 사용한다. 문제에서 최댓값을 삭제하는 경우와 최솟값을 삭제하는 경우가 둘 다 존재한다. min heap과 max heap이 둘 다 존재해야하므로 PriorityQueue 를 2개 생성하였다. 느낀점: Level3라고 하기엔 너무 쉬운문제다...

    [프로그래머스][Level3][JAVA][등굣길]

    [프로그래머스][Level3][JAVA][등굣길]

    [문제 설명] https://programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr [풀이 과정] DP를 응용하여 푸는 문제이다. 집에서 학교까지의 좌표가 주어졌을 때 최단경로의 개수를 구하는 방법은 다음 규칙을 이용한다. m=4, n=3 1) (x, y) = (x+1, y)[아래] + (x, y+1)[오른쪽] 단, (x+1, y), (x, y+1) 좌표가 둘 다 위치범위를 넘어간다면 (x,y)는 1로 초기화 해준다. ..

    [프로그래머스][Level3][JAVA][단어변환]

    [문제 설명] https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr [문제 풀이] 문제에 나온 예시로 설명한다. 예시 > String begin = "hit"; String target = "cog"; String[] words = {"hot", "dot", "dog", "lot", "log", "cog"}; 1) String을 담는 Queue를 생성, 단어의 확인여부를 ..

    [프로그래머스][Level3][2 x n 타일링]

    [문제 설명] https://programmers.co.kr/learn/courses/30/lessons/12900 코딩테스트 연습 - 2 x n 타일링 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 programmers.co.kr [풀이 과정] deveric.tistory.com/61 [Java DP] 프로그래머스 2 X n 타일링 Dynamic Programming의 대표적인 문제인 2XN 타일링 문제입니다. 문제 DP문제는 케이스를 나누는 것이 중요합니다. 케이스를 나눌 때는 문제를 다 풀기 직전의 상황부터 거꾸로 푸는 방법이 좋습니다. deveric.tis..

    [JAVA] 날짜, 시간 계산 총 정리

    [JAVA] 날짜, 시간 계산 총 정리

    1. 날짜 원하는 형식으로 출력하기 // 날짜 초 소숫점까지 나타내기. Date date = new Date(); SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS"); // 초 소숫점 세자리까지 나타내기 System.out.println(simpleDateFormat1.format(date)); SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd hh:mm"); System.out.println(simpleDateFormat2.format(date)); // 2020-11-24 01:12:55.219 2020-11-24 01:12 2..