본문 바로가기

분류 전체보기

(433)
프로그래머스_가장 큰 수 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 정렬 문제, LV2 해당 문제를 풀며 알게된 것은 문자열 '+' 연산은..
프로그래머스_프린터 https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 | 프로그래머스 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 programmers.co.kr 스택/큐와 관련된 문제였다. STL 라이브러리의 deque을 활용해서 해결하였..
프로그래머스_베스트앨범(해시) https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 | 프로그래머스 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 play programmers.co.kr 해당 문제도 해시 문제로 LV3의 문제였다. 문제 자체의 로직은 크게 어..
프로그래머스_위장(해시) https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 | 프로그래머스 programmers.co.kr 해당 문제는 해시 문제로 STL 라이브러리의 map을 통해 문제를 해결하였다. 의상 분류에 맞게 의상 개수를 증가 시키고 해당 분류의 조합으로 구성할 수 있는 의상 개수를 구하면 된다. 이 때 0(안입음) ~ 개수 중에서 몇 번 의상을 입을 것인 지를 고려하면 된다. 즉, 해당 의상 종류의 개수 +1 * 해당 의상 종류의 개수 +1 * ... 이런식으로 끝까지 곱한다음 0000....00 의 아무것도 입지 않은 경우의 수 1개만 빼주면 된다. #include #include #include using namespace std; in..
프로그래머스_전화번호 목록(해시) https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 | 프로그래머스 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 r programmers.co.kr 해당 문제는 해시 유형으로 비교적 쉬운 난이도의 문제였다 먼저 전화번..
프로그래머스_카펫 https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 | 프로그래머스 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 빨간색으로 칠해져 있고 모서리는 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 빨간색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 빨간색 격자의 수 red가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수 programmers.co.kr 해당 문제는 완전탐색으로 모든 경우를 다 살펴보는 문제이다. 먼저 brown과..
프로그래머스_구명보트 https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 | 프로그래머스 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없습니다. 구명보트를 최대한 적게 사용하여 모 programmers.co.kr 해당 문제는 greedy로 접근하는 문제였다. 보트 개수를 사람 수 만큼 ..
프로그래머스_큰 수 만들기 https://programmers.co.kr/learn/courses/30/lessons/42883?language=cpp 코딩테스트 연습 - 큰 수 만들기 | 프로그래머스 programmers.co.kr 해당 문제는 Greedy 문제로 접근 방법은 각 숫자 범위 중 가장 큰 숫자를 추려내면 된다. i 번째 숫자 삽입 시에 지정지을 수 있는 범위는 i ~ k+i 이다. #include #include using namespace std; string solution(string number, int k) { string answer = ""; int bound = number.size()-k; // 경계선 int idx = -1; // 가장 최근 고른 idx // bound 개의 숫자를 만들 때 까지 ..