[프로그래머스] 예상 대진표 (JAVA/자바)
·
PS/프로그래머스
[문제 링크]https://school.programmers.co.kr/learn/courses/30/lessons/12985문제 설명N명의 참가자가 각각 1~N번을 배정받아서 토너먼트 형식의 게임에 참가한다. 1번↔2번, 3번↔4번,... N-1번↔N번 끼리 게임을 진행하고, 다음 라운드에 진출한 참가자들은 다시 1번부터 (N/2)번을 배정받아서 게임을 진행한다.이 때, 처음 라운드에서 A번을 가진 참가자가 B번 참가자와 만나게 되는 라운드 번호를 구한다.A번 참가자와 B번 참가자는 서로 만날 때까지 항상 이긴다고 가정한다. 문제 풀이알고리즘 분류이진탐색최종 라운드에서 시작해서 아래로 내려가면서 a와 b가 만나는 라운드를 구한다.N = 2^x 일 때, N명의 참가자가 토너먼트 게임을 진행하면 총 x..
[프로그래머스] 주차 요금 계산 (JAVA/자바)
·
PS/프로그래머스
[문제 링크]https://school.programmers.co.kr/learn/courses/30/lessons/92341문제 설명주차장의 요금표와 차량들의 입차, 출차 기록이 주어질 때, 차량별로 주차 요금을 계산해서 차량번호가 작은 자동차부터 순서대로 주차요금을 출력한다.- 누적 주차 시간 - 누적 주차 시간 > 기본시간 : 기본요금 + (초과시간에 대해 단위시간당 요금 청구)- 초과시간이 단위 시간으로 나누어떨어지지 않으면 올림해서 계산- 어떤 차량이 입차된 후에 출차된 내역이 없다면 23:59에 출차된 것으로 간주하고 계산 문제 풀이알고리즘 분류구현HashMap문제는 이해했는데 구현을 하는데 시간이 오래걸렸다.처음에는 먼저 차량번호와 시각 기준 오름차순 정렬한 후에, 차량번호가 작은 순서..
[백준] 7490번 : 0 만들기 (JAVA/자바)
·
PS/백준
[문제 링크]https://www.acmicpc.net/problem/7490문제 설명1 ~ N까지 오름차순으로 된 수열의 숫자들 사이에 '+', '-', ' '(공백) 를 적절하게 삽입한다.이렇게 해서 만들어진 수식을 계산한 결과가 0이 되는 모든 수식을 찾는다. 문제 풀이알고리즘 분류문자열완전탐색깊이 우선 탐색(DFS)수식의 결과가 0이 되는 모든 수식을 찾아야 하기 때문에 완전탐색으로 모든 경우의 수를 탐색한다.1. 재귀함수를 사용해서 숫자들 사이에 +, - " "(공백) 중 하나를 선택해서 만들 수 있는 수식을 문자열 형태로 생성한다. dfs(num + 1, str + " " + (num+1));dfs(num + 1, str + "+" + (num+1));dfs(num + 1, str + "-..
[프로그래머스] 야근지수 (JAVA/자바)
·
PS/프로그래머스
[문제 링크]https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명야근피로도 = (N시간 동안 야근 후 남은 일의 각 작업량^2) 을 모두 더한 값N시간동안 works 배열에 담긴 각 일의 작업량을 적절하게 처리했을 때, 야근 피로도의 최소값을 구한다.1시간동안 작업량 1을 처리할 수 있다. 문제 풀이알고리즘 분류우선순위 큐(PriorityQueue)야근 피로도의 최소값을 구하려면 작업량이 가장 많은 일부터 처리해서 제곱근의 크기를 작게 한다. PriorityQueue에 현재 남은 작업량을 담..
[백준] 1713번 : 후보 추천하기 (JAVA/자바)
·
PS/백준
[문제 링크]https://www.acmicpc.net/problem/1713문제 설명N개의 사진틀에 추천받은 학생회장 후보 사진을 아래 규칙을 따라 게시할 때, 최종 후보들의 번호를 출력한다. 1. 추천받은 순서대로 사진을 사진틀에 게시한다.2. N개의 사진틀 중 비어있는 사진틀이 없는 경우 2-1. 새롭게 추천받은 학생이 현재 게시된 학생에 포함된 경우, 해당 학생의 추천 횟수 + 1 2-2. 새롭게 추천받은 학생이 현재 게시된 학생에 포함되지 않은 경우, - 현재까지 추천 받은 횟수가 가장 적은 학생 삭제 + 삭제한 자리에 새로운 학생 게시 - 추천 받은 횟수가 가장 적은 학생이 2명 이상일 경우, 가장 오래된 학생 삭제 문제 풀이알고리즘 분류구현HashMap(..
[백준] 2467번 : 용액 (JAVA/자바)
·
PS/백준
[문제 링크]https://www.acmicpc.net/problem/2467문제 설명주어진 용액들 중에서 서로 다른 2개의 용액을 혼합해서 나온 값이 0에 가장 가까운 용액을 만들어 내는 두 용액을 구한다. 문제 풀이알고리즘 분류투포인터 용액이 오름차순 정렬되어 있는 상태이므로 가장 첫 번째 값 인덱스(left)와 가장 마지막 값 인덱스(right)를 포인터로 지정한 후, 배열이 안쪽 방향으로 두 포인터를 움직이면서 0에 가까운 두 수를 구한다. 1. 0과 n-1 를 투 포인터 left, right로 지정한다.2. left와 right 인덱스가 가리키는 두 값을 더한 값(sum)을 구한다.3. Math.abs(sum) sum 절대값이 현재 저장된 값보다 작을 경우 현재 저장된 값 업데이트4-1..