본문 바로가기

코딩테스트/문제풀이 팁15

[Kakao] 가장 많이 받은 선물 https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 위 문제를 풀면서 1. 이름들로 배열이 표현 될 경우, HashMap을 통해 이름(String) - 인덱스(value) 형태로 저장 후, value값인 인덱스를 array로 표현할 때 인덱스를 사용해본다. 이렇게 하면, 이름 -> 인덱스 -> 배열의 인덱스 로 사용이 가능해 표현이 더 간결해진다. 이 문제를 보고 기억해야 할 포인트는 두가지 이다. 1. 두 사람이 선물을 주고받은 기록이 있다면,.. 2024. 3. 15.
[Kakao] "년/월/일" 날짜 문제 "일"로 모두 환산하기 https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 먼저 이 문제를 풀기 위해서 생각한 점은, 1. terms(약관)에 저장된 값을 key-value의 형태로 map에 저장해 key(A)값을 이용해서 value(6)인 유효기간을 가져온다. 2. 년/월/일의 형식을 지키려면 복잡하고 배열공간도 많이 요구되므로 "년/월/일" -> "일" 로 환산해서 계산한다. 3. 문자열을 마침표('.')로 구분하여 자르기 위해 str.split(".")을 이용할 .. 2024. 3. 14.
Stream, 되도록이면 사용하지 말자 https://school.programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 위 문제를 풀면서 아래 기존코드와 같이 Arrays.sort를 이용해서 내림차순을 하기 위해 Stream을 이용해서 int타입을 Integer 타입 배열로 박싱하는 코드를 구현했다. 하지만 이 코드는 정확선 테스트에서는 문제가 없었지만, 효울성 테스트를 통과하지 못했다. 기존코드 import java.util.*; class Solution { public int solution(int []A, .. 2024. 2. 26.
[HashSet, HashMap] 롤케이크 자르기 https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; class Solution { public int solution(int[] topping) { int answer = 0; HashSet set = new HashSet(); Map map = new HashMap(); for(int i=0;i 2024. 2. 26.
[HashMap] 여러 요소와 요소의 개수세기 https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; class Solution { public int solution(int k, int[] tangerine) { int answer = 0; HashMap map = new HashMap(); for(int t : tangerine){// (1) map.put(t, map.getOrDefault(t,0)+1); } List list = new ArrayList.. 2024. 2. 25.
[PriorityQueue] 효율적인 스케줄링 https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제에서의 팁) 1. 위 문제는 이전 타임의 퇴실시각과 다음 타임의 입실시각을 비교해야 하는 문제로, 입실시각을 기준으로 오름차순 정렬한 배열 & 퇴실시각을 기준으로 오름차순 정렬한 배열 두가지의 배열이 필요하다. import java.util.PriorityQueue; import java.util.Arrays; import java.util.Comparator; class Solution.. 2024. 2. 21.