전체 글

    프로그래머스 - 광고 삽입 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/72414 코딩테스트 연습 - 광고 삽입 시간을 나타내는 HH, H1, H2의 범위는 00~99, 분을 나타내는 MM, M1, M2의 범위는 00~59, 초를 나타내는 SS, S1, S2의 범위는 00~59까지 사용됩니다. 잘못된 시각은 입력으로 주어지지 않습니다. (예: 04:60:24, 11 programmers.co.kr 99:59:59을 초로하면 35999초이므로 각 초마다 viewer의 수를 배열로 만들고 누적값을 통해서 해결하였습니다. 1. 영상의 길이, 광고의 길이를 초단위로 변경 2. 영상의 길이까지 담을 수 있는 int배열 생성 3. 로그들을 순회하면서 배열에 +1 - 다만 끝나는 지점은 +1 하지않음(끝점을 포..

    프로그래머스 - 순위 검색 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/72412

    프로그래머스 - 게임 맵 최단거리 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 일반적인 DFS/BFS 문제로 시작지점에서 도착지점까지의 최단 거릴를 구하면됩니다. 개인적으로 이런 MAP에서 이동 문제는 BFS를 선호하기 때문에 BFS을 사용하여 해결하였습니다. 주의점 주의점이라고 하기도 뭐하지만 이동이 불가능하면 -1을 리턴해야하는데 Arrays.fill을 통해서 -1을 채워 넣지않으면 retrun ..

    프로그래머스 - 단체사진 찍기 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/1835 코딩테스트 연습 - 단체사진 찍기 단체사진 찍기 가을을 맞아 카카오프렌즈는 단체로 소풍을 떠났다. 즐거운 시간을 보내고 마지막에 단체사진을 찍기 위해 카메라 앞에 일렬로 나란히 섰다. 그런데 각자가 원하는 배치가 모두 programmers.co.kr 모든 경우의 수를 구하고 그 경우 중에서 조건을 만족하는 경우를 카운트하는 방식으로 해결할수있다. 주의점 1. 전역변수 초기화 하나의 테스트 케이스에서 여러 값들을 넣어보는 테스트를 진행하기 때문에 전역변수로 설정하면 내부 로직에서 초기화 작업이 필수이다. 바로 아래 코드에서는 int cnt 값을 static으로 설정한 뒤 solution 메서드 안에서 0으로 초기화 하고 ..

    프로그래머스 - 합승 택시 요금 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr 이문제는 다익스트라 또는 플로이드 워셜 알고리즘으로 풀수 있습니다. 주의점 알고리즘으로 최단거리를..

    프로그래머스 - 풍선 터트리기 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/68646 코딩테스트 연습 - 풍선 터트리기 [-16,27,65,-2,58,-92,-71,-68,-61,-33] 6 programmers.co.kr 풍선이 끝까지 살아남기 위해서는 해당 풍선을 기준으로 오른쪽과 왼쪽에서 가장 작은 값 둘 중 하나보다 작아야 합니다. 왼쪽에서 작은 값만 살려서 오고 오른쪽에서 작은 값만 살려서 온 뒤 현재 풍선이 둘다 보다 작으면 더큰것을 살릴수 있는 기회를 사용하지않고 남길수 있고. 둘중 하나보다만 크다면 기회를 사용하여 남길수있습니다. 그러나 둘다보다 크다면 기회가 한번이기 때문에 불가능합니다. 주의점 매번 오른쪽과 왼쪽을 계산하니까 시간초과가 발생하여 DP를 통해서 해결하였습니다. class..

    프로그래머스 - 2 x n 타일링 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/12900 코딩테스트 연습 - 2 x n 타일링 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 programmers.co.kr 타일 채우기 문제로 dp를 이용해서 풀었다. n = 1 이면 1개 (세로 1) n = 2 이면 2개 (세로 2, 가로 2) n - 3 이면 3개 (세로 3, 세로 1 가로 2, 가로2 세로 1) n = 3 인 경우를 보면 n = 1일때 가로2개와 세로 2개 더 세우는 경우 n = 2일때 세로 타일을 하나더 세우는 경우 두 경우의 합에 겹치는 경우를 빼면 된다. c..

    프로그래머스 - 추석 트래픽 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/17676 = 고 하게 되면 안됩니다. - 1부터 10개를 가진다고하면 1, 2, 3, 4, ,5, 6, 7, 8, 9, 10인데 1 + 10 은 11이기 때문이죠. - 위와 동일하게 1초부터 1초의 범위를 가진다면 1,000 ~ 1.999 까지 라는 겁니다. import java.text.SimpleDateFormat; import java.util.*; class Solution { public static int solution(String[] lines) throws Exception { SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss.SSS"); int[] count..