일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 브루트포스
- 깊이우선탐색
- 문자열
- DFS
- SWEA
- 백준알고리즘
- 너비 우선 탐색
- 자바스크립트
- 너비우선탐색
- 파이썬
- BFS
- 백준 알고리즘
- 브루트포스 알고리즘
- 백트래킹
- oracle
- Python
- 데이터베이스
- 다익스트라
- DP
- 구현
- 스택
- 그리디 알고리즘
- javascript
- 그래프 이론
- 프로그래머스
- 오라클
- 다이나믹 프로그래밍
- 완전탐색
- 그래프 탐색
- SW Expert Academy
- Today
- Total
목록그리디 알고리즘 (7)
민규의 흔적
2024년 8월 6일문제 링크 : 프로그래머스 - 귤 고르기문제 접근 그리디하게 접근해 간단하게 풀 수 있는 문제라고 판단했다. 각 귤마다 이산 값을 가지며, 상자 하나에 k개의 귤을 담고자 할 때 귤의 크기 종류가 최소가 되도록 하고 싶으므로각 크기 별 귤의 개수를 딕셔너리에 저장해 각 value 값을 리스트 형태로 뽑아와 내림차순 정렬하여 종류가 많은 귤부터 상자에 넣으면 된다고 결론냈다. k = 6, tangerine = [1, 3, 2, 5, 4, 5, 2, 3] 인 입력 예시를 들어보자. 각 크기별 개수를 딕셔너리 형태로 담아내면 다음과 같다. dict = {1 : 1, 2 : 2, 3 : 2, 4 : 1, 5 : 2} 각 value 값을 리스트 형태로 뽑아내면 다음과 같다. [1, 2, 2..
2024년 7월 1일문제 링크 : 백준 1213번 - 팰린드롬 만들기문제 임한수와 임문빈은 서로 사랑하는 사이이다.임한수는 세상에서 팰린드롬인 문자열을 너무 좋아하기 때문에, 둘의 백일을 기념해서 임문빈은 팰린드롬을 선물해주려고 한다.임문빈은 임한수의 영어 이름으로 팰린드롬을 만들려고 하는데, 임한수의 영어 이름의 알파벳 순서를 적절히 바꿔서 팰린드롬을 만들려고 한다.임문빈을 도와 임한수의 영어 이름을 팰린드롬으로 바꾸는 프로그램을 작성하시오.입력첫째 줄에 임한수의 영어 이름이 있다. 알파벳 대문자로만 된 최대 50글자이다.출력첫째 줄에 문제의 정답을 출력한다. 만약 불가능할 때는 "I'm Sorry Hansoo"를 출력한다. 정답이 여러 개일 경우에는 사전순으로 앞서는 것을 출력한다. 알고리즘 분류..
2024년 7월 1일문제 링크 : 백준 1515번 - 수 이어 쓰기문제 세준이는 1부터 N까지 모든 수를 차례대로 공백없이 한 줄에 다 썼다. 그리고 나서, 세준이가 저녁을 먹으러 나간 사이에 다솜이는 세준이가 쓴 수에서 마음에 드는 몇 개의 숫자를 지웠다.세준이는 저녁을 먹으러 갔다 와서, 자기가 쓴 수의 일부가 지워져있는 모습을 보고 충격받았다.세준이는 수를 방금 전과 똑같이 쓰려고 한다. 하지만, N이 기억이 나지 않는다.남은 수를 이어 붙인 수가 주어질 때, N의 최솟값을 구하는 프로그램을 작성하시오. 아무것도 지우지 않을 수도 있다.)입력첫째 줄에 지우고 남은 수를 한 줄로 이어 붙인 수가 주어진다. 이 수는 최대 3,000자리다.출력가능한 N 중에 최솟값을 출력한다.알고리즘 분류구현그리디 알..
2024년 6월 11일문제 링크 : 프로그래머스 - 구명보트 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 접근 문제에서 주어진 조건들 중, 가장 중요한 정보는 다음과 같다. 1. 구명보트는 한 번에 최대 2명만 탈 수 있다.2. 구명보트의 무게 제한은 항상 사람들의 몸무게 중 최댓값보다 크게 주어지므로 사람들을 구출할 수 없는 경우는 없다. limit가 100인데, 사람의 몸무게가 120인 경우는 없다는 뜻이다. 이러면 고려해야 할 사항이 줄어들어 생각하기 편하다. 그리디하게 접근해, 최대한 많은 사람을 태우려면 가장 무거운 사람 + 가장 가벼운 ..
2024년 6월 10일문제 링크 : 프로그래머스 - 큰 수 만들기 문제 접근 주어진 숫자 number에서 k개의 수를 제거하여 도출될 수 있는 가장 큰 수를 구하면 된다. 이는 아주 그리디하게 접근 가능하다.최대한 큰 수가 앞자리 수에 오도록 유도하는 것이다.이에 나는 스택 구조를 활용하여, 최대한 앞자리에 오는 작은 수를 먼저 없애는 것에 초점을 두었다. 1924를 예로 보자. k는 2이고, 가장 첫 번째 자리수는 1이다.stack이 비어있기에 비교할 대상이 없어 now를 append 해준다. now는 9이고, stack의 마지막 요소는 1이기에 맨 앞 자리수에 1보단 9가 오는게 수가 더 클 것이다.이에 stack의 마지막 요소가 now보다 크거나 같은 값일 때까지 pop 하며 k를 1씩 감소시킨..
2024년 6월 10일문제 링크 : 프로그래머스 - 조이스틱 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 시작하기 앞서, 그리디 알고리즘에 대해 간단히 짚고 넘어가겠다. (문제 풀이만 보고 싶다면 아래로 넘어가도 무방하다.) 그리디 알고리즘 탐욕법, 탐욕 알고리즘이라고도 하며, 결과를 도출하기 위해 효율적일 것 같은 방법으로 솔루션을 구하는 알고리즘이다. 최적의 해를 구하는 데에 사용되는 근사적인 방법으로, 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달한다. 다음 그래프를 ..
2023년 9월 19일 문제 링크 : 2839번 - 설탕 배달 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000) ..