[백준 / Java] 1946번: 신입 사원 (그리디)
·
CS & Algorithm
코테99 19일차 문제는 백준 1946번 '신입사원'이다.  문제 이해 테스트 케이스의 개수가 주어진다.한 케이스에는 지원자의 숫자가 주어지고, 각 지원자의 서류심사 성적과 면접 성적의 순위가 공백을 사이에 두고 주어진다.이때, 서류 심사 성적과 면접시험 중 적어도 하나가 다른 지원자보다 떨어지지 않으면 선발된다.선발할 수 있는 최대 인원수를 출력한다.단, 두 성적 순위는 동석차 없이 결정된다. 접근 방법 서류 심사 성적 등수를 기준으로 정렬한다.면접 성적 등수를 비교하며 현재 순위가 가장 높은 순위보다 높다면(작으면),합격자를 추가하고  높은 순위를 갱신한다.  알고리즘 진행 순서 테스트케이스를 입력받는다.입력받은 지원자 정보를 (서류 순위, 면접 순위) 형태로 저장한다.서류 순위를 기준으로 오름차순 ..
[백준 / Java] 17053번: 맥주 축제 (그리디)
·
CS & Algorithm
코테99 17일차 문제는 백준 11399번 'ATM'이다.  문제 이해1대의 ATM 앞에 N명의 사람들이 줄을 서 있다.줄의 각 사람들이 걸리는 시간이 주어진다.돈을 인출하는데 필요한 시간의 합의 최솟값을 구해라.  접근 방법 도수가 낮은 순서로 정렬해서 최소한의 간 레벨을 찾는다.선호도 높은 맥주 N개만 유지하면서 합이 M을 넘는지 확인한다.우선순위 큐를 사용해서 선호도가 낮은 맥주를 제거하면서 N개 유지한다. 알고리즘 진행 순서 맥주 데이터를 입력받는다.도수 기준으로 오름차순 정렬한다.도수가 낮은 맥주부터 하나씩 선택하면서, 선호도 높은 N개만 유지한다.N개를 넘으면 선호도가 낮은 맥주를 버린다.N개를 유지하면서 선호도 합이 M 이상이 되는지 확인한다.M 이상이면 해당 도수를 출력한다.끝까지 조건을 ..
[백준 / Java] 11399번: ATM (그리디)
·
CS & Algorithm
코테99 17일차 문제는 백준 11399번 'ATM'이다.  문제 이해1대의 ATM 앞에 N명의 사람들이 줄을 서 있다.줄의 각 사람들이 걸리는 시간이 주어진다.돈을 인출하는데 필요한 시간의 합의 최솟값을 구해라.  알고리즘 진행 순서 N을 입력받는다.N명의 사람이 걸리는 시간을 배열에 입력받는다.배열을 정렬하고,1부터 N-1까지 반복하여, 이전 index값 + 현재 index값을 현재 index의 값에 넣고그 값을 total에 더해 시간의 합을 구하여 출력한다. 구현 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;import java.util...
[백준 / Java] 27961번: 고양이는 많을수록 좋다 (그리디)
·
CS & Algorithm
코테99 16일차 문제는 백준 27961번 '고양이는 많을수록 좋다'다.  이번 문제는 그리디로 접근하는 것을 알고 있었지만, 내가 생각해낸 접근법이 맞나.. 하면서 문제를 풀었다.  문제 이해마도카는 N마리의 고양이를 키우기 위해 2가지 마법을 사용한다.고양이 한 마리를 추가한다.일부 또는 전부의 고양이를 복제 (2배) 한다.N마리가 될 수 있는 마법의 최소 횟수를 출력한다. 알고리즘 진행 순서 N을 입력받는다.cat이 N보다 작을 때까지 반복하면서현재 cat * 2가 1보다 작거나 같으면 +1을 하고아니라면, cat * 2를 cat에 넣는다count를 +1한다. 구현 코드package Boj;import java.io.BufferedReader;import java.io.IOException;impo..
[백준 / Java] 15686번: 치킨 배달 (백트래킹)
·
CS & Algorithm
[백준 / Java] 2615번: 오목 (브루트포스)
·
CS & Algorithm
오늘의 코테99 14일차 문제는 백준 2615번 '오목'이었다. 문제 이해검은 바둑알은 1, 흰 바둑알은 2, 알이 놓이지 않은 자리는 0으로 입력된다.가로, 세로, 대각선 방향에 연속적으로 5개가 놓아지면 이기게 된다.이긴 돌이 있는 경우 돌의 색 (1 혹은 2)과 가장 왼쪽에 있는 돌의 좌표가 출력되고, 승부가 결정되지 않으면 0이 출력된다.알고리즘 진행 순서 입력받은 바둑 돌을 배열에 저장한다.19 x 19 보드판을 모두 돌면서 1(흑돌) 혹은 2(백돌)일 경우 네 방향(→, ↓, ↘, ↙) 탐색하여 같은 색을 찾고,같은 색일 경우 연속된 돌의 개수(count)를 증가시킨다.이후 count가 5가 되면 이긴 플레이어를 출력한다.   구현 코드package Boj;import java.io.Buffe..