본문 바로가기
반응형

[알고리즘 + 자료구조]/[프로그래머스]82

프로그래머스 주차 요금 계산 (JAVA) HashMap을 이용해서 풀이한다. HashMap에서 key를 기준으로 오름차순 정렬하고 싶으면, 이러한 방법을 생각해 볼 수 있다. List keySet = new ArrayList(map.keySet()); // 키 값으로 오름차순 정렬 Collections.sort(keySet); for (String key : keySet) { System.out.print("Key : " + key); System.out.println(", Val : " + map.get(key)); } https://velog.io/@dev-easy/Java-Map을-Key-Value로-정렬하기 그리고 HashMap의 키에 대한 값 업데이트는, 그냥 키를 덮어씌워주면 된다. map.put("key", new_value); h.. 2022. 12. 15.
프로그래머스 가장 가까운 같은 글자 오랜만에 자바로 풀어보았다. class Solution { public int[] solution(String s) { int answer[] = new int[s.length()]; int[] alphabet = new int[26]; // a : 0 ~ z : 25 for(int i = 0; i < s.length(); i++) { if(alphabet[(s.charAt(i) - 'a')] == 0) { answer[i] = -1; } else { answer[i] = i + 1 - alphabet[(s.charAt(i) - 'a')]; } alphabet[(s.charAt(i) - 'a')] = i + 1; } return answer; } } 자바 다른사람의 풀이 import java.util.*.. 2022. 12. 14.
프로그래머스 등굣길 해당 자리까지 오는 경우의 수를 dp값으로 정의한다. 오른쪽과 아래쪽으로만 이동한다는 점이 활용된다. 나의 구현 방식은 이렇다. m x n 맵을 만들지 않고, (m+1) x (n+1) 맵을 만든 뒤에 모든 값을 0으로 채운다. 집의 위치는 1로 지정해준다. 그리고 puddles 벡터를 돌면서, 물웅덩이의 위치는 -1로 채워준다. 이제 전체 벡터를 돌면서, 현재 위치가 시작지점이면 continue (점화식 그대로 적용하면 집의 위치도 0이 되므로) 현재 위치가 물웅덩이이면 continue (물웅덩이의 값은 -1로 유지시킬 거임) 그게 아니면 점화식을 적용하는데,, 여기서 주의점은 위쪽과 왼쪽을 살펴볼 때, 물웅덩이일 경우 -1이 아닌 0으로 해놓아야, 경로가 없다는 의미가 적용된다. 조금 지저분하게 푼 것.. 2022. 10. 4.
프로그래머스 야근 지수 퇴근 이후에 야근을 하는데, 야근 피로도를 최소화 하기 위해서 피로도(남은 일들의 작업량을 제곱하여 모두 더한 값)를 최소화 하도록 일을 처리해놓는 방법에 대해 묻는 문제이다. 가장 큰거 하나씩 줄이는 그리디라고 보면 될 것 같다고 생각했다. multiset을 이용해서, 최댓값을 구해내는 방식을 사용해서 풀었다. #include #include #include #include long long solution(int n, vector works) { long long answer = 0; multiset ms; for(auto x : works) { ms.insert(x); } while(n--) { int k = *(--ms.end()); // 자동 정렬이므로, 가장 많이 남은 작업량 if(k > 0).. 2022. 10. 2.
반응형