본문 바로가기

2022/0214

[프로그래머스] #135 예산 (Swift) programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 1. 적용 알고리즘과 문제 설명 그리디 알고리즘을 적용하는 문제이다. 그리디 알고리즘은 선택의 순간마다 당장 눈앞에 보이는 최적의 상황만을 쫓아 최종적인 해답에 도달하는 방법이다. 대표적인 문제로 knapsack 문제가 있는데, 이 문제는 0-1 knapsack 문제와 유사하지만 가방 속 아이템들의(여기서는 각 부서)가치가 아닌 아이템의 갯수만 많으면 되기 때문에 0-1 knap.. 2022. 2. 11.
[프로그래머스] #134 최소직사각형 (Swift) https://programmers.co.kr/learn/courses/30/lessons/86491?language=swift 코딩테스트 연습 - 최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 구현 명함의 가로와 세로 길이를 담은 [w,h] 배열이 명함의 갯수만큼 주어진다. (2차원배열, [[w,h]]) 명함들을 적절히 90도 회전하여 (w,h)->(h,w) 모든 명함을 담을 수 있는 지갑의 최소한의 넓이구하는 문제 접근방법 처음에는 모든 명함들이 회전한경우,회전하지않은경우 의 지갑의 최소 넓이를 모두 구해야 하나 싶었다. (브.. 2022. 2. 11.
[프로그래머스] #133 K번째수 (Swift) https://programmers.co.kr/learn/courses/30/lessons/42748?language=swift 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 정렬 자연수 (1~100) 배열이 주어지고 command : [시작점, 끝점, K]가 배열로 주어진다. 자연수 배열을 시작점과 끝점 범위에 맞게 자른뒤 정렬하고, 그 중 K번째수를 구한다 각 command의 K번째수를 담은 배열을 반환하는 문제 접근방법(접근방법1) command를 for문으로 순회하며 subArray를 구하고, 정렬한 뒤, K번째 인덱스를 result 배열에 append함 -> 최종적.. 2022. 2. 10.
[프로그래머스] #132 체육복 (Swift) https://programmers.co.kr/learn/courses/30/lessons/42862?language=swift 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 탐욕법(Greedy) 체육복을 도난 당한 친구들에게 여분이 있는 학생들이 양옆의 친구에게 빌려줘서 체육복이 없는 학생 인원을 최소로 줄여서 체육복이 있는 학생수를 출력하는 문제 접근방법 우선 본인이 여벌의 옷을 갖고 있는데 한개를 분실한 친구 번호는 양배열에서 모두 제거한다. (filter사용) 체육복이 있는 학생 번호를 담은 reser.. 2022. 2. 10.
[프로그래머스] #131 모의고사 (Swift) https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 완전탐색 학생 3명의 반복되는 답이 문제에 주어지고, 정답을 담을 배열이 인자로 주어지면 학생들 중 가장 높은 점수를 획득한 학생들을 결과로 반환하는 문제 접근방법 학생들의 답을 담은 배열과 정답 배열을 순회하면서 일일이 비교하여 학생들 각각의 점수를 구한 뒤 최고점과 점수가 같은 학생들을 결과 배열에 담아, 오름차순으로 정렬하여 반환하는 식으로 풀이했다. 처음.. 2022. 2. 8.
728x90