본문 바로가기
반응형

알고리즘 문제 풀이24

프로그래머스 : 기능개발 본 풀이는 java 언어를 사용하였습니다. 문제 보러가기 풀이 정답의 개수가 가변적으로 변하므로 ArrayList 로 선언해주었고, 해당 일자에 해당하는 변수를 선언 해 주었다. List answer = new ArrayList(); int day = 0; 그 후 progresses 를 순회하면서 작업의 남은 진도 와 필요한 일 수를 계산하였다. for (int i = 0; i < progresses.length; i++) { int leftProgress = 100 - progresses[i]; // 남은 진도 int requireDay = leftProgress / speeds[i]; // 필요한 일 수 if (leftProgress % speeds[i] != 0) { // 나머지 값이 있으면 1일 .. 2021. 8. 11.
백준 : 섬의 개수 (4963) *** 본 풀이는 java언어를 사용하였습니다 *** 문제 보러가기 요약 섬과 바다가 적힌 지도가 주어진다. 섬 주변에 (360 도) 다른 섬이 있으면 하나의 섬이라고 가정한다. 섬의 개수를 출력하라. 문제를 보자마자 그래프 탐색으로 풀어야 겠다는 생각이 들었다면 문제를 쉽게 풀 수 있었을 것이다. 그래프 탐색은 BFS와 DFS가 있는데, 필자는 BFS로 풀었다. 참고 ) 보통 DFS는 스택이나 재귀함수를 통해서 구현하고, BFS는 큐를 이용해서 구현한다. 풀이 여러가지 방법이 있겠지만, 필자의 경우 탐색하는 위치가 섬 일 경우 BFS 탐색을 시작하게끔 구현했다. public static int solution(int[][] map) { int result = 0; boolean[][] visited =.. 2020. 4. 8.
백준 : 한수 (1065) *** 본 풀이는 java언어를 사용하였습니다 *** 문제 보러가기 요약 정수의 각 자리가 등차수열을 이루면 한수다. 한수의 개수를 출력하라. 각 자리가 등차수열이란?? 처음에는 한수라는 용어가 잘 이해가 안갔는데, 간단하게 예를 들면 다음과 같다. 예시 1 ) 123이라는 수가 있다면 각 자리의 수는 1, 2, 3이다. 수는 +1 씩 일정하게 증가하는 등차수열 이므로, 이것은 한수다. 예시 2 ) 111이라는 수가 있다면 각 자리의 수는 1, 1, 1이다. 수는 +0 씩 일정하게 증가하는 등차수열 이므로, 이것 또한 한수다. 예시 3 ) 110이라는 수가 있다면 각 자리의 수는 1, 1, 0이다. 첫 번째 수와 두 번째 수의 차이는 +0이다. 두 번째 수와 세 번째 수의 차이는 -1이다. 따라서 일정하.. 2020. 4. 8.
프로그래머스 : 크레인 인형뽑기 게임 *** 본 풀이는 java 언어를 사용하였습니다 *** 문제 보러가기 요약 board 안의 인형을 moves 순서대로 집어서 바구니에 담는다. 바구니에 담을 때 같은 인형이 2개면 인형이 사라진다. 사라진 인형의 개수를 구하라. 2차원 배열, stack 자료구조에 대한 이해가 있는지 점검하는 문제인 듯 하다. 풀이 바구니에 넣을 때 바구니의 아래쪽부터 쌓이는 방식이므로 stack 자료구조를 이용하면 되겠다고 생각했다. 바구니에 넣을 때, 가장 최근에 바구니에 들어간 인형을 비교하여 인형이 동일하면 바구니의 최근 인형을 제거하는 식으로 코딩을 했더니 쉽게 문제를 풀 수 있었다. 제출 코드 import java.util.Stack; public class Solution { private int countO.. 2020. 4. 3.
백준 : 신입 사원 (1946) *** 본 풀이는 java언어를 사용하였습니다 *** 문제 보러가기 요약 서류심사 성적과 면접시험 성적 중 적어도 하나가 다른 지원자보다 떨어지지 않는 자만 선발 위 말은 A 지원자의 서류심사 성적이 B 지원자의 서류심사 성적보다 낮더라도 A 지원자의 면접시험 성적이 더 높다면 A 지원자가 선발 된다는 말이다. 풀이 다음 예시를 보자. 3 2 1 4 4 1 2 3 5 5 지원자들의 성적이 다음과 같이 들어왔다면, 비교를 위해 먼저 성적을 서류심사 순으로 오름차순 정렬한다. 1 4 2 3 3 2 4 1 5 5 맨 처음 지원자는 서류심사가 1등. 즉, 적어도 하나가 다른 지원자 보다 떨어 질 수 없는 조건이므로 무조건 합격이다. 서류심사 기준 오름차순 정렬 상태 이므로 다음 지원자는 무조건 서류심사 점수가 .. 2020. 3. 27.
백준 : 회의실배정 (1931) *** 본 풀이는 java언어를 사용하였습니다. *** 문제 보러가기 풀이 회의실 사용시간과 끝나는 시간의 회의들을 그래프로 나타내면 다음과 같다. 우리가 원하는 것은 최대 사용할 수 있는 회의의 개수를 구하는 것이다. 최대한 많은 회의의 개수를 구하는 방법은 다음과 같이 구할 수 있다. 회의가 끝나는 시간별로 오름차순 정렬 현재 회의의 끝나는 시간과 다음 회의의 시작 시간을 비교 다음 회의의 시작 시간이 더 크다면 최대 사용할 수 있는 회의 개수 1 증가 회의가 끝나는 시간별로 오름차순 정렬되어 있으니 3번을 통과한다면 그 시간에서 나올 수 있는 최대 회의 개수가 되기 때문 주의할 점은 회의가 끝나는 시간이 같을 경우는 회의 시작 시간을 비교 해 정렬해야 한다. 회의는 Conference 객체로 분리했.. 2020. 3. 26.