본문 바로가기

전체 글

(96)
[프로그래머스 42885]구명보트 문제링크 programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 문제난이도 Level 2 문제풀이 1. 몸무게를 담고 있는 벡터(people)를 오름차순 정렬해준다 2. 가장 가벼운 몸무게(=head)와 가장 무거운 몸무게(=tail)을 가리키는 인덱스 설정한다 3. head가 tail과 같은 경우(같은 사람을 가리키는 것)이거나 head가 더 큰 경우(모든 경우 탐색완료) 탐색을 종료한다 3-1. he..
[프로그래머스 42627]디스크 컨트롤러 문제링크 programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr 문제난이도 Level3 문제풀이 1. jobs 벡터이 입력된 정보를 정렬해준다 --> [작업요청시간, 작업소요시간] ⓐ 작업요청시간 기준으로 오름차순 정렬 ⓑ 작업요청시간이 같을 경우, 작업에 소요되는 시간을 기준으로 오름차순 정렬 2. jobs 벡터에서 수행할 작업을 꺼낸다 3. 2번에서 꺼낸 작업이 시작하는 시간(startTime)을 계산한다 - 이전작업이 ..
[프로그래머스 49189] 가장 먼 노드 문제링크 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 문제난이도 Level 3 문제풀이 1. 연결노드 정보에 따라 각 노드별 인접노드 정보를 vector에 저장 ex. [1, 3] -> vc[1] = 3, vc[3] = 1 1번은 3번과 연결 되어있으며 반대로 3번도 1번과 연결되어 있다 2. 1번 노드에서 출발(방문표기) 3.-1. '현재 노드에서 1번 노드까지 도달하는거리 > 현재 구한 노드 1번 노드까지 도달하는 최대거리' 이러한 경우, 최대값을 갱신해주고 1번으로부터 먼 노드 con..
[프로그래머스 42883] 큰 수 만들기 문제링크 programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 문제난이도 Level 2 문제풀이 1. k개를 제외하고 선택할 숫자 갯수를 구한다 2. 전체 문자열에서 x개를 선택하고 남은 길이가 마지막 선택된 숫자 위치로부터 (전체 문자열 길이-x)만큼 확보가 되어야한다. - int i = number.length() - len; --> 마지막에 선택된 숫자 이후부터 확보되어야 할 길이 - i > start; --> 마지막에 선택된 숫자의 뒷 인덱스까지 탐색 3. 각 위치별 최대값으로 선택된 숫자들을 이어서 반환한다 (주어진 상황에서의 최적의 해를 찾으며 그리디 알고리즘이 적용된걸 볼 수 있다) 자세한 문..
[프로그래머스 42862] 체육복 문제링크 programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 문제난이도 Level 1 문제풀이 1. 옷을 잃어버리 않은 학생들은 수업에 참여 할 수 있다 2. 옷을 잃어버렸지만 여벌을 갖고 있는 학생들은 수업에 참여가 가능하다 ★주의★ - 옷을 잃어버렸지만 여벌을 갖고 있는 학생은 다른 학생에게 옷을 빌려줄 수 없다 3. 여벌옷을 갖고있는 남은 학생들 중 바로 앞 또는 뒤의 번호인 경우 체육볼을 빌려 수업에 참가한다 자세한 풀이..
[백준 7576] 토마토 문제링크 www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 문제난이도(solved.ac 기준) Silver 1 문제풀이 1. 최초 익어있는 토마토의 좌표를 구하고 안익은 토마토의 전체 갯수를 구한다. 2. queue를 사용하여 BFS방식으로 각 토마토가 익는데 걸린 최소시간을 구한다. 3. 모든 토마토가 익었을 때 익는데까지 가장 오래걸린 일수를 결과로 출력한다. 자세한 풀이는 소스코드를 통해 확인해보자. 소스코드 1 2 3 4 5 6 7 8 ..