본문 바로가기

728x90

map

[프로그래머스] (2024 KAKAO WINTER INTERNSHIP) 가장 많이 받은 선물 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 선물을 주고 받은 기록을 정리하고 그 기록을 바탕으로 이번에 선물을 최대로 많이 받은 사람의 선물 수를 구하는 문제입니다. 선물기록을 2차원 배열로 정리하여 이번에 선물을 받는 경우를 쉽게 구하도록 하는 것이 이번 문제의 요점인듯 싶습니다. friends의 입력값이 모두 문자열 이기 때문에 각 문자열에 대응하는 이름을 빠르게 찾기 위해 Map을 사용해 이름들을 들어오는 순으로 숫자를 .. 더보기
[프로그래머스] 성격 유형 검사하기 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 설문조사에 해당하는 성격유형이 어떤것일지 알 수 없어서 Map을 사용해 각 성격유형별 점수를 Map에 넣고 마지막에 성격유형을 출력시 맞는 점수를 출력하도록 하면 되는 비교적 간단한 자료구조를 이용한 구현문제였습니다. 추가로 map이 아닌 배열로만 해결하는 풀이도 깔끔해보여 가져왔습니다. 주의점 유형점수가 동일시 사전 순으로 출력 코드 import java.util.*; class S.. 더보기
[프로그래머스] 할인 행사 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 2개의 map을 사용하여 생각보다 간단하게 해결했습니다. want, number배열을 기억하여 답을 확인해줄 Map (input) discount의 값을 하나씩 받으며 최근 10일간의 정보만을 가질 Map(counter) number의 원소합은 10이므로 오직 둘이 같은 경우에만 모든 물건을 원하는 만큼 살수 있으므로 두 Map이 같다면 answer를 늘려줍니다. 2중 for문이 생기.. 더보기
[프로그래머스] 귤 고르기 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 문제에서 귤의 크기와 상관없이 크기의 종류가 최소일 때 담으려는 귤의 수를 원하기 때문에 같은 크기인 귤의 수를 구하고 내림차순 정렬해주어 k개만큼 귤을 넣었을때 종류의 수를 return 으로 해결할 수 있는 문제입니다. tangerine의 원소의 범위가 길어 배열의 정렬은 시간초과가 날 수 있어 Map을 사용해 특정 크기의 귤 수를 구하고 해당 값으로 List를 만들어 정렬 후 fo.. 더보기
[프로그래머스] 시소 짝꿍 / 자바(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/152996 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해설 weights의 길이가 딱 봐도 길어 일일히 비교한다면 약 100억번의 연산, O(n^2)이 필요해 시간복잡도를 고려해야하는 문제입니다. 일일히 비교하지 않고 쉽게 있던 값을 검색하는 방식으로 특정 무게를 키로 가지고 해당 무게를 가진 사람의 수를 값으로 가진 Map을 사용해야한다고 생각되었습니다. 또한 우리가 확인해야할 좌석은 3가지로 총 비교 횟수는 6가지에 추가로 같은 무게인 경.. 더보기

728x90