코딩 테스트/프로그래머스

    [프로그래머스][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..

    [프로그래머스][Level2][JAVA] 방금 그 곡

    [프로그래머스][Level2][JAVA] 방금 그 곡

    [문제 설명] https://programmers.co.kr/learn/courses/30/lessons/17683 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, programmers.co.kr [풀이 과정] 꽤나 많이 삽질하고 해맨 문제다. 여기저기 다른 코드들을 참고하여 풀었다. 문제를 풀면서 포인트라고 생각한 부분들에 대해서 정리를 하겠다. 문제 조건에 다음과 같은 항목이 있다. 1. " 조건이 일치하는 음악이 여러 개일 때에는 라디오에서 재생된 시간이 제일 긴 음악 제목을 반환한다. 재생된 시간도 같을 경우 먼저 입력된..

    [프로그래머스][Level2] 압축 - JAVA

    [프로그래머스][Level2] 압축 - JAVA

    [문제 설명] https://programmers.co.kr/learn/courses/30/lessons/17684 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] programmers.co.kr [풀이 과정] 특별한 알고리즘을 이용하기보다는 그냥 문제에 주어진 규칙을 따라가며 풀었다. 단어가 사전에 들어가는 규칙이 있는데, 만약 "KAO" 라는 단어가 사전에 들어간다고 하면, "K" 와 "KA" 는 이미 사전에 존재한다. 때문에 "K"부터 뒤에 한 단어씩 늘리면서 사전에 있는지 탐색하다가 사전에 없는 단어 S까지 도달하면 아래 작업을 하면 된다. 1. 단어 S를..