코딩 테스트

    프로그래머스 - 거스름돈 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/12907 코딩테스트 연습 - 거스름돈 Finn은 편의점에서 야간 아르바이트를 하고 있습니다. 야간에 손님이 너무 없어 심심한 Finn은 손님들께 거스름돈을 n 원을 줄 때 방법의 경우의 수를 구하기로 하였습니다. 예를 들어서 손님께 5 programmers.co.kr dp를 통해서 해결이 가능합니다. dp[사용하는 동전의 개수][금액]을 이용해서 동전을 늘려가면서 dp를 구하면됩니다. 설명은 코드에 주석으로 대체하겠습니다. // 프로그래머스 거스름돈 문제 class Change { static final int MOD = 1000000007; public int solution(int n, int[] money) { int[]..

    프로그래머스 - 오픈채팅방 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 아이디를 키, 닉네임을 값으로 map을 만들고 들어오고 나가는 경우를 순서대로 배열에 담고 들어오는 아이디가 map에 없으면 해당 닉네임으로 map에 등록하고 들어오는 아이디가 map에 있으면 해당 닉네임으로 map을 수정합니다. (사실 위 두 경우 코드가 동일합니다.) 변경하는 경우는 map의 닉네임을 수정해줍니다. 저는 들어오고 나가는 경우에 메세지를 출력하는 부분을 전략..

    프로그래머스 - 기지국 설치 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/12979 코딩테스트 연습 - 기지국 설치 N개의 아파트가 일렬로 쭉 늘어서 있습니다. 이 중에서 일부 아파트 옥상에는 4g 기지국이 설치되어 있습니다. 기술이 발전해 5g 수요가 높아져 4g 기지국을 5g 기지국으로 바꾸려 합니다. 그런데 5 programmers.co.kr 이 문제는 간단히 생각하면 1위치부터 시작해서 기지국의 범위 밖에 있으면 현재 위치를 포함할 수 있는 가장 먼 곳에 기지국을 설치하고 설치한 기지국 밖으로 이동 기지국 범위 안에 있으면 해당 기지국의 범위 밖으로 이동 위의 개념을 구현하면됩니다. 주의점 현재 위치가 모든 기지국을 지나쳣다면 그 다음부터는 기지국을 계속 설치해나아가게 됩니다. 아래코드에서는 ..

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

    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 이문제는 다익스트라 또는 플로이드 워셜 알고리즘으로 풀수 있습니다. 주의점 알고리즘으로 최단거리를..