본문 바로가기

Algorithme/Programmers16

[프로그래머스] 야근 지수 Java programmers.co.kr/learn/courses/30/lessons/12927 코딩테스트 연습 - 야근 지수 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도 programmers.co.kr 문제 요약 야근을 시작하는데 남은 일의 양은 works배열 만큼 있고, 퇴근까지 시간은 n 만큼 남아있다. 한 시간에 1의 작업량만을 해결할 수 있으며, 야근이 끝난 후의 피로도는 남은 작업들의 제곱의 합이다. 퇴근 시간이 되었을 때 남을 수 있는 가장 적은 피로도를 반환하는 함수를 만들어야 한다. 문제 풀이 당연히 피로도를 줄이기 위해서는 가장 남은양이 많은 .. 2020. 10. 26.
[프로그래머스] 멀쩡한 사각형 Java programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 문제 요약 한 칸이 1 x 1로 구성된 w x h 칸의 종이가 있다. 이 종이를 대각선 꼭짓점 2개를 잇는 방향으로 잘랐을 때 손상되지 않은 1x1 크기의 칸의 개수를 구하시오. 문제 풀이 우선 w와 h의 값이 최대 1억이기 때문에 최대공약수로 나누어서 해결한 다음에 최대공약수(GCD)를 곱해주는 방식을 사용해야 편하다. 최대공약수를 구하는 함수를 .. 2020. 10. 25.
[프로그래머스] 순위 Java programmers.co.kr/learn/courses/30/lessons/49191 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr 문제 요약 n명의 권투선수가 서로 시합을 하는데 시합에는 변수가 없기 때문에 A선수가 B선수보다 강하면 A선수가 무조건 이긴다. 경기 결과 몇개가 2차원 배열로 주어질 때 순위를 확실히 알 수 있는 선수의 수를 반환하는 함수를 만들어야 한다. 문제 풀이 이 문제의 핵심은 자신에게 진 선수에게 진 선수는 자신에게도 지며, 자신에게 이긴 선수에게 이긴 선수는 자신에게도 이긴다는 것이다. 당연히 동점은 없으므로 타 선수들간의 전적을 모두 알고있는 선수의 수를 반환하는 게 정답이었다. 처음.. 2020. 10. 22.
[프로그래머스] 가장 먼 노드 Java programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 문제 요약 여러 개의 노드가 이어진 그래프가 있다. 노드의 개수 n과 간선을 담고 있는 이차원배열 edge를 받아서 1번 노드에서 가장 멀리 떨어진 노드의 개수를 반환하는 함수를 만들어야 한다. 문제 풀이 BFS로 풀면 간단한 문제이다. edge를 이용해 노드의 연결을 확인하는 2차원 배열 map을 선언하고 채운다. 또한 각 노드까지의 거리를 저장할 distance 배열을 만든다. 1부터 BFS로 탐색을 시작하는데 now와 연결되어 있으며, di.. 2020. 10. 21.