본문 바로가기

Development/CodingTest

(29)
[정렬] 프로그래머스 level 2 H-Index python 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 문제 접근 citations 각 요소들을 비교하면서 인용 횟수를 세야하나..? 그럼 이중 for문을 써야 하나..? 그래도 뭔가 이상한데.. 다시 문제 접근 1. 가장 인용횟수가 높은 논문 인덱스부터 정렬한 후 2. 0회 인용 횟수부터 시작해서 논문 하나씩 비교해 나가면서 +1 하다가 3. 인용 횟수보다 더 낮은 인용 횟수의 논문이 나오면 break 이런 식으로 간단히 풀 수 있었다.. 코드..
[Heap] 프로그래머스 level 2 더 맵게 java 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Heap 이란? 자료구조 중 하나로, 일반적으로 우선순위 큐(Priority Queue)를 구현하기 위해 사용되는 이진 트리 구조. 힙은 일반적으로 '최소 힙(Min Heap)' 또는 '최대 힙(Max Heap)' 두 가지 종류로 나뉨 최소 힙(Min Heap)에서는 부모 노드의 값이 항상 자식 노드의 값보다 작거나 같다. 최대 힙(Max Heap)에서는 부모 노드의 값이 항상 자식 노드의 값보다..
[정렬] 프로그래머스 level 2 가장 큰 수 python, java 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/42746 처음 떠올린 생각은.. 1. 순열을 써서 가능한 모든 문자열 조합을 나열하고 2. 그걸 싹다 int로 바꿔서 sort 시켜주기 3. 다시 문자열로 바꾸기 아무리 봐도 비효율적인 것 같아서 고민해보다가 구글에 찾아봤다. 해결 흐름 1. int 배열을 모두 string으로 변환 2. 문자열에 sort를 한다. 이때 문자열에 sort를 적용하면 사전식 배열을 하게 되는데, 이는 각 문자의 ASCII 코드 값에 따라 정렬하는 방식을 의미한다. 즉, 문자열의 첫 번째 문자부터 비교하며 정렬하고, 첫 번째 문자가 동일한 경우 두 번째 문자를 비교하고, 두 번째 문자도 동일한 경우 세 번째 문자를 비교하..
[완전 탐색] 프로그래머스 level 1 최소직사각형 python 풀이 무식해 보여도 사실은 최고의 방법일 때가 있지요. 완전 탐색? 모든 가능한 경우의 수를 시도하여 원하는 결과를 찾는 알고리즘 기법. 브루트 포스(Brute Force)라고도 함. 경우의 수가 많거나 입력 크기가 큰 경우에는 계산 비용이 높아질 수 있다. 완전 탐색은 작은 규모의 문제나 기준이 명확한 경우에 유용함. 해결 흐름 1. 가로나 세로 중에서 가장 큰 값이 다음 직사각형의 가로나 세로 값보다 작으면 교체 -> 즉 가장 큰 값을 찾아야함 2. 만약 가로 값이 가장 큰 값 일때, 세로 값도 다른 직사각형의 세로 값보다 커야함 -> 즉 작은 값들중 가장 큰 값을 찾아야함 3. 직사각형들 중에서 하나의 직사각형 가로나 세로중 더 큰 값들 중에 가장 큰 값 * 작은 값들 중에서 큰 값 코드 def solu..
[Hash] 프로그래머스 level 1 폰켓몬 Java 풀이 Hash란? Hash는 임의 크기의 데이터를 고정 크기의 값으로 변환하는 함수 또는 알고리즘을 의미 HashSet? HashSet은 중복되지 않는 고유한 값을 저장하기 위한 자료 구조 해결 흐름 1. int[] nums의 중복 요소를 제거하고 그 길이를 리턴 -> HashSet 사용 2. nums/2 개 만큼 폰켓몬을 데려갈 수 있는데 nums/2 크기가 HashSet의 크기보다 작다면 최대 종류 별로 nums/2 까지 밖에 못 데려감 -> nums/2 리턴, HashSet 크기가 nums/2 보다 작다면 HashSet 크기 리턴 입출력 예 nums, result [3,1,2,3] 2 [3,3,3,2,2,4] 3 [3,3,3,2,2,2] 2 코드 import java.util.*; class Soluti..