본문 바로가기

코딩테스트 연습/programmers

(34)
[프로그래머스] 해시 - 위장 이전에 c++ 로 풀어봤던 문제였는데, java로 다시 풀어봤다. import java.util.*; import java.io.*; class Solution { public int solution(String[][] clothes) { int answer = 1; HashMap map = new HashMap(); for(String[] s: clothes){ map.put(s[1], map.getOrDefault(s[1], 0) + 1); } Iterator iter = map.entrySet().iterator(); while(iter.hasNext()){ Map.Entry next = iter.next(); answer = answer * (next.getValue() + 1); } answer..
[프로그래머스] 해시 - 전화번호 목록 String.startsWith 라는 메소드를 배웠다. "접두사"라는 말을 잘 못보고 contains 메소드를 써버려서 계속 오답이 나왔던.. ㅠㅠ 문제를 잘 읽자!!! 2중 for문 -> 시간초과로 통과하지 못했던 코드 import java.util.*; import java.io.*; class Solution { public boolean solution(String[] phone_book) { boolean answer = true; HashMap map = new HashMap(); for(int i=0;i
[Programmers] 스택/큐 > 주식 가격 스택/큐 - 주식 가격 https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr time벡터는 연산이 아무것도 이루어지지 않을경우 초기값으로 (price-1)부터 0까지 저장한다. 만약 prices[i]보다 뒤에오는 prices[j]값이 더 작은것이 있을 경우, time[i]에는 j부터 i까지의 시간초 범위를 저장한다. 코드 #include #include #include us..
[Programmers] 스택/큐 > 프린터 스택/큐 - 프린터 https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr prior벡터 안에 받은 입력과 인덱스를 같이 저장해두고, prior의 첫번째요소보다 큰것이 있으면 , 첫번째요소를 마지막에 넣고 첫번째자리에서는 지운다. 처음 자리에 한해서 모든 경우를 계속 봐야하므로 , 한번 push erase가 일어나면 i=0으로해줘서 다시 비교한다. result 벡터에는 반복문이 한번 끝날때마다 prior의 첫번째 요소를..
[Programmers] 스택/큐 > 다리를 지나는 트럭 스택/큐 - 다리를 지나는 트럭 https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr queue로 선언한 q에다 truck_weights입력을 넣어두고 시작한다. for(int i=1; i != q.empty() ; i++ ) 여기서 i는 경과 시간으로 생각한다. weight보다 time벡터 원소의 모든합(t)이 작을때만 q를 push할 수 있다. index에는 time에 q 원소가 언제..
[Programmers] 스택/큐 - 기능개발 스택/큐 - 기능개발 https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr rest 벡터는 (100-progress[i])으로 남은 작업 진도와, 그것을 speeds[i]로 나눈 값을 올림해서 저장한다. 예시 progress = [93, 30, 55] / speeds = [1, 30, 5] 의 경우, 7/1 , 70/30, 45/5 가 되는데, 70/30의경우 2.3333...으로 나누어떨어지지 않는다. 이..
[Programmers] sort > 가장 큰 수 정렬 - 가장 큰 수 int 벡터인 numbers를 string으로 변환하여 str_numbers에 저장 후, sort함수로 비교 대상을 두개 더하여 더 큰 수를 앞에오게하여 내림차순으로 정렬했다. (string도 int처럼 대소 비교 가능) answer이 "00", "000", "0000" 등 모두 0인경우는 "0"으로 출력했다. 코드 #include #include #include #include #include using namespace std; bool compare(string a,string b){ return a+b > b+a; } string solution(vector numbers) { string answer = ""; vector str_numbers; for(int i=0;i
[Programmers] heap > 더 맵게 힙 - 더 맵게 https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr priority_queue로 선언한 q를 오름차순으로 정의했고, MIN HEAP과 동일한 형태로 만들었다. 연산에 필요한 첫번째 요소, 두번째 요소는 변수에 각각 저장 후 pop시켜주고, (첫번째 + 두번째 요소*2)를 push해준다. priority_queue기 때문에 자동으로 오름차순으로 정렬된다. 코드 #include #incl..