프로그래머스 7

[JAVA] 프로그래머스 : 주식가격 (코딩테스트 고득점 kit > 스택/큐)

https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 첫 번째 풀이 큐를 이용하여 구현하였음 각 주식 가격이 언제까지 떨어지지 않는지 시간을 재는 방식을 이용함 코드 import java.util.*; // 주식가격 class Solution { public int[] solution(int[] prices) { int[] answer = new int[prices.leng..

Old/Algorithms 2020.07.14

[JAVA] 프로그래머스 : 프린터 (코딩테스트 고득점 kit > 스택/큐)

https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린�� programmers.co.kr 큐를 이용하여 구현하였음 flag를 둬서 뒤의 순서에 우선 순위가 더 높은 경우가 있는지 없는지 체크하고 그에 따른 로직을 구현하였음 location 위치를 계속 잘 따라가주고 몇 번째로 인쇄되는지 값을 가지는 answer 변수는 프린터 큐에서 poll이 될때마다 증가시켜줌 import java.util.*; // 프린터 // 내가 인쇄를 요청한 문서가 몇 번째..

Old/Algorithms 2020.07.14

[JAVA] 프로그래머스 : 다리를 지나는 트럭 (코딩테스트 고득점 kit > 스택/큐)

https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이�� programmers.co.kr 첫 번째 풀이 해결 방안 큐를 제대로 이해하고 있으면 풀 수 있는 문제였음 큐와 문제의 주어진 조건을 이용해서 푸는 문제. 각 트럭이 다리 길이 갔을 때 나가는 걸 체크하기 위해 enterTime을 활용 코드 import java.util.*; // 다리를 지나는 트럭 // 모든 트럭이 다리를 건너는데 걸리는 시간 class Solution ..

Old/Algorithms 2020.07.13

[JAVA] 프로그래머스: 위장 (코딩테스트 고득점 kit > 해쉬)

https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr 수학적인 접근이 필요한 문제임 의상 종류의 수와 종류들의 각 갯수를 가지고 풀 수 있는 문제임 해쉬를 이용해서 각 의상 종류의 갯수들을 저장해줌 그리고 경우의 수를 구해줌 * for(String key : keys) 는 keys에 있는 값들을 key값에 넣는 것이다. (keys에 값이 더이상 없을때까지) import java.util.*; //위장 // [의상의 이름, 의상의 종류] // 최소 한 개 이상의 의상 // 서로 다른 옷의 조합의 수 return // 같은 종류의 의상은 조합 불가 class Solution { public int sol..

Old/Algorithms 2020.07.13

[JAVA] 프로그래머스: 전화번호 목록 (코딩테스트 고득점 kit > 해쉬)

https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조�� programmers.co.kr 해결 방안 String 라이브러리 활용이 중요함 접두어인 경우이므로 startsWith 함수를 썼으며 indexOf == 0 일 경우를 확인하는 방법도 가능함 코드 import java.util.*; //전화번호 목록 // 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false, 그렇지 않으면 true class Solution { public boo..

Old/Algorithms 2020.07.11

[JAVA] 프로그래머스: 완주하지 못한 선수 (코딩테스트 고득점 kit > 해쉬)

https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수�� programmers.co.kr 첫번째 풀이 해결방안 참가자들 전원을 HashMap에 넣어주고 완주한 사람들의 이름이 담긴 completion의 이름들을 HashMap에서 찾아서 제거해줌 단, 동명 이인이 있을 수 있어 HashMap의 value를 사람 수로 하고 제거할 때 사람 수가 1이면 remove하고 1 초과이면 사람 수를 줄이는 방법을 사용함 코드 import ..

Old/Algorithms 2020.07.11

[JAVA] 프로그래머스: 탑 (코딩테스트 고득점 kit > 스택/큐)

https://programmers.co.kr/learn/courses/30/lessons/42588 코딩테스트 연습 - 탑 수평 직선에 탑 N대를 세웠습니다. 모든 탑의 꼭대기에는 신호를 송/수신하는 장치를 설치했습니다. 발사한 신호는 신호를 보낸 탑보다 높은 탑에서만 수신합니다. 또한, 한 번 수신된 신호는 다 programmers.co.kr 문제를 읽어보고 스택 문제라는 감이 왔음 하지만 스택을 써서 비교할때 매 탑마다 pop을 해서 높이 비교를 하고 다음 탑에 넘어갈 때 push를 다시 해줘야 한다고 생각하여 반복문을 이용하여 구현함 // 탑 // 수평 직선에 탑 N대 // 모든 탑 꼭대기에 신호 송/수신 장치 // 송신 신호는 보낸 탑보다 더 높은 탑에서만 수신 // 한번 수신된 신호는 다른 탑..

Old/Algorithms 2020.07.11