본문 바로가기

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

[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.
시간 복잡도 계산 https://devraphy.tistory.com/284 시간복잡도 완전정복(1) 0. 시작에 앞서 요즘 백준을 통해 알고리즘 문제를 열심히 풀고있다. 문제를 작성하면 내 코드가 다른 사람들의 코드보다 10ms 정도 더 걸리는 경우도 있고, 올바른 답은 나오지만 시간초과로 인 devraphy.tistory.com 시간 복잡도를 코딩 테스트에 활용하는 방법 이제 시간 복잡도를 표현하는 방법이 빅오 표기법이라는 건 알았습니다. 그럼 빅오 표기법을 어떻게 활용하면 좋을까요? 코딩 테스트 문제에는 제한 시간이 있으므로 문제를 분석한 후에 빅오 표기법을 활용해서 해당 알고리즘을 적용했을 때 제한 시간 내에 출력값이 나올 수 있을지 확인해볼 수 있습니다. 그러면 문제 조건에 맞지 않는 알고리즘을 적용하느라 낭비하.. 2024. 2. 20.