문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 유형 Map, 정렬 문제 풀이 처음에 보자마자 떠오른 방식은 1000개짜리 배열을 만들어서 매개변수 array의 각 요소에 해당하는 인덱스 자리에 카운팅을 해주는 것이었다. 하지만 이는 테스트 케이스에 따라 1000개짜리 배열을 생성하면서 사용하지 않는 메모리가 많을 수도 있겠다는 생각이 들었다. 다른 방법을 떠올리던 중 이전에 풀었던 top K Frequent element 가 생각났고, 해당 풀이를 참고하여 풀었다. 1. Map 객체를 만들고, array를 순회하며 Map에 각 숫자가 나온..
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 유형 문자열, Map 문제 풀이 이번 문제는 문자열 타입의 두 숫자가 주어지고, 공통으로 나타나는 정수들을 이용하여 만들 수 있는 가장 큰 숫자를 반환하는 문제이다. 처음에 생각한 문제 접근법은 다음과 같다. 1. 숫자 X의 맵을 만들고, 각 자리에 해당하는 숫자가 나온 횟수를 저장한다. 2. 숫자 Y를 순회하면서 각 자리에 해당하는 숫자가 X에 있으면 공통으로 나타나는 숫자임을 확인하고 따로 저장한다. 3. '000'과 같은 수는 '0'을, 공통 수가 없으면 -1을, 그 이외의 수는 내림차순..
문제 링크 Two Sum - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 유형 배열, Hash Map 문제 풀이 해당 문제는 숫자 배열과 target 값이 주어지고 배열 내 임의의 두 숫자를 더하면 target 값이 되는 두 숫자의 인덱스를 배열 형태로 출력하는 문제이다. 이 문제는 해시 테이블을 이용하면 O(n)의 시간복잡도로 문제를 해결할 수 있다. 먼저, 해시 테이블 Map을 생성하고, 배열을 순차적으로 접근한다. 만약 현재 숫자가 해시 테이블에 저..