알고리즘 풀이
-
프로그래머스 - 위장알고리즘 풀이/프로그래머스 2019. 12. 5. 02:18
문제 : https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 | 프로그래머스 programmers.co.kr 풀이 : 해쉬맵을 만든 후 clothes의 사이즈 만큼 for문을 돌면서 값이 없다면 +1씩 추가해준다. 그러면 예제1을 예시로 m[handgear] 에는 2가 m[eyewear] 은 1이 저장된다. m[handgear] = 2 m[eyewear] = 1 이제 handgear 의 경우의 수는 3가지 ( 착용 x, yellow hat, green turban ) eyewear의 경우의 수는 2가지 ( 착용 x, blue sunglasses ) 이므로 총 경우의 수는 6가지가 나올 수 있다. 이때 모두 착용하지 않는 경우의 수..
-
프로그래머스 - 탑알고리즘 풀이/프로그래머스 2019. 12. 3. 02:55
문제 : https://programmers.co.kr/learn/courses/30/lessons/42588 코딩테스트 연습 - 탑 | 프로그래머스 수평 직선에 탑 N대를 세웠습니다. 모든 탑의 꼭대기에는 신호를 송/수신하는 장치를 설치했습니다. 발사한 신호는 신호를 보낸 탑보다 높은 탑에서만 수신합니다. 또한, 한 번 수신된 신호는 다른 탑으로 송신되지 않습니다. 예를 들어 높이가 6, 9, 5, 7, 4인 다섯 탑이 왼쪽으로 동시에 레이저 신호를 발사합니다. 그러면, 탑은 다음과 같이 신호를 주고받습니다. 높이가 4인 다섯 번째 탑에서 발사한 신호는 높이가 7인 네 번째 탑이 수신하고, 높이가 7 programmers.co.kr 풀이 : 2중 for문을 통해 끝에서 부터 기준을 잡고 각각 그 기준-..
-
백준(BOJ) 16988번 Baaaaaaaaaduk2 (Easy)알고리즘 풀이/백준(Boj) 2019. 12. 2. 01:21
문제 : https://www.acmicpc.net/problem/16988 16988번: Baaaaaaaaaduk2 (Easy) 서기 2116년, 인간은 더 이상 AI의 상대가 되지 못하게 되었다. 근력, 순발력, 창의력, 사고력, 문제해결능력, 심지어 인간미조차 AI가 인간을 앞선다. AI가 온 지구를 관리하며 이미 인류는 지구의 주인 자리에서 쫓겨난지 오래이다. 그나마 다행인 것은 AI가 인간을 적대적으로 대하지 않고, 도리어 AI가 쌓아올린 눈부신 기술의 발전으로 모든 사람이 무제한적인 재화를 사용할 수 있게 되어 한 세기 전의 사람들이 바라던 돈 많은 백수와 같은 삶을 누릴 www.acmicpc.net 풀이 : 우선 좌표값이 0인 좌표들만 v 배열에 넣는다. 그 후 2개씩 뽑아서 각각의 경우를 ..
-
프로그래머스 - 디스크 컨트롤러알고리즘 풀이/프로그래머스 2019. 12. 1. 23:18
문제 : https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 | 프로그래머스 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를들어 - 0ms 시점에 3ms가 소요되는 A작업 요청 - 1ms 시점에 9ms가 소요되는 B작업 요청 - 2ms 시점에 6ms가 소요되는 C작업 요청 와 같은 요청이 들어왔습니다. 이를 그림으로 표현하면 아래와 같습니다. 한 번에 하나의 요청만을 수행할 수 있기 때문에 각각의 programmers.co.kr 풀이 : jobs들을 시간 순서대로 정렬한다. 현재 시간 ..
-
프로그래머스 - 가장 큰 수알고리즘 풀이/프로그래머스 2019. 12. 1. 02:55
문제 : https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 | 프로그래머스 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. programmers.co.kr 풀이 : 직접 compare 조건을 만들어 주자. 조건은 두 ..
-
프로그래머스 - 라면공장알고리즘 풀이/프로그래머스 2019. 12. 1. 02:51
문제 : https://programmers.co.kr/learn/courses/30/lessons/42629 코딩테스트 연습 - 라면공장 | 프로그래머스 라면 공장에서는 하루에 밀가루를 1톤씩 사용합니다. 원래 밀가루를 공급받던 공장의 고장으로 앞으로 k일 이후에야 밀가루를 공급받을 수 있기 때문에 해외 공장에서 밀가루를 수입해야 합니다. 해외 공장에서는 향후 밀가루를 공급할 수 있는 날짜와 수량을 알려주었고, 라면 공장에서는 운송비를 줄이기 위해 최소한의 횟수로 밀가루를 공급받고 싶습니다. 현재 공장에 남아있는 밀가루 수량 stock, 밀가루 공급 일정(dates)과 해당 시점에 공급 가능한 밀가루 수량 programmers.co.kr 풀이 : 해당 날이 되면 밀가루를 pq에 추가해주어서 쓸 수 있도..
-
프로그래머스 - 프린터알고리즘 풀이/프로그래머스 2019. 12. 1. 02:48
문제 : https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 | 프로그래머스 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 programmers.co.kr 풀이 : 조건이 만족한다면 동적 배열에 [0] 부분을 제거하고 조건이..