목록알고리즘 (53)
자바칩
난이도: Level 2문제: https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제에 주어진 조건을 그대로 구현하면 된다.큐를 사용해야 한다는 것도 문제에서 친절하게 알려준다.우선 실행 대기 큐와 실행 리스트를 다음과 같이 선언한다. int answer = 0; // location번째 프로세스가 실행되는 순서 QueueProcess> ready = new LinkedList(); // 프로세스 실행 대기 큐 ListPro..
난이도: Level 2문제: https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제의 지문은 확실히 잘못 되었다.트럭이 다리를 모두 지나기까지의 경과 시간이 어떻게 되는지 제대로 명시해놓지 않았다.프로그래머스의 지문은 별로 좋지 않은 문제들이 꽤 있는 것 같다.본 문제의 지문이 이해가 가지 않는다면 아래 지문을 다시 보면 좀 이해가 될 것이다.출처: https://school.programmers.co.kr/questions/53163 우선 변수..
난이도: Level 2문제: https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 지문이 너무 이상해서 이해가 안됐다.다른 회원분이 문제 지문을 재해석한 버전(아래 링크)을 보면 본 문제의 지문보다는 이해가 잘 될 것이다.https://school.programmers.co.kr/questions/20326?question=20326 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나..
난이도: Level 3문제: https://school.programmers.co.kr/learn/courses/30/lessons/42628 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 체감상 레벨3 문제치고는 쉬운 문제였다.이정도면 솔직히 레벨2 중에서도 쉬운 문제가 아닐까 싶다. 큐를 정렬하려면 우선순위 큐를 사용해야 하는데, 이중우선순위큐는 자바 라이브러리에 존재하지 않는다.그러므로 이것을 우리가 만들어야 한다는 것이다.일단 우선순위 큐를 다음과 같이 내림차순 정렬한다.참고로 여기에서는 Integer.compare(b, a) 대신 b - a로 작성해..
난이도: Level 3문제: https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 우선순위 큐를 이용해서 푸는 문제인데 생각보다 경우의 수가 많아서 내 힘으로는 결국 풀지 못했다.레벨3답게 방법이 꽤 복잡하다.작업 처리가 종료된 최근 시간보다 요청 시점이 이전인 작업들을 작업의 소요시간이 짧은 작업들부터 순서대로 처리하는 것이 이 로직의 핵심이다.경우의 수가 많기 때문에 그림 설명을 보기보다는 바로 코드를 보는 것이 이해가 더 잘 될 것이다.주석에 설명..
난이도: Level 2문제: https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제가 정렬로 분류되어있지만 사실 정렬할 필요가 전혀 없다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 빨간색으로 표시한 문장은 헷갈릴 수 있다.나머지 논문의 개수가 h번 이하인 것이 아니라, 나머지 논문의 배열 값(논문의 인용 횟수)이 모두 h번 이..
난이도: Level 2문제: https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 숫자 배열을 모두 문자열 배열로 바꿔주고Arrays.sort(문자열 배열 이름, Comparator 익명 클래스로 정렬 기준 세팅);이것만 잘 해주면 된다. int[] numbers = {3, 30, 34, 5, 9}이 배열에서 얻을 수 있는 가장 큰 수는 9534330이다.즉, 9, 5, 34, 3, 30으로 정렬을 해줘야 한다는 말이다. 9, 5는 정렬하는 ..
난이도: Level 3문제: https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 레벨3라서 어려울 줄 알았는데 생각보다 어렵지 않았다.그냥 주어진 조건을 따라서 정렬만 잘 하면 되기 때문이다.오히려 같은 해시 문제의 레벨2 문제를 쩔쩔맸다.아무래도 나는 문제를 단순하게 생각하는 능력이 부족한 것 같다. 먼저 다음과 같이 고유번호, 장르, 재생횟수가 담긴 Song 클래스를 선언한다. class Song { int id; ..