목록분류 전체보기 (255)
Deff_Dev
문제https://www.acmicpc.net/problem/13300문제 설명정보 초등학교에서는 단체로 2박 3일 수학여행을 가기로 했다. 여러 학년이 같은 장소로 수학여행을 가려고 하는데 1학년부터 6학년까지 학생들이 묵을 방을 배정해야 한다. 남학생은 남학생끼리, 여학생은 여학생끼리 방을 배정해야 한다. 또한 한 방에는 같은 학년의 학생들을 배정해야 한다. 물론 한 방에 한 명만 배정하는 것도 가능하다.한 방에 배정할 수 있는 최대 인원 수 K가 주어졌을 때, 조건에 맞게 모든 학생을 배정하기 위해 필요한 방의 최소 개수를 구하는 프로그램을 작성하시오.예를 들어, 수학여행을 가는 학생이 다음과 같고 K = 2일 때 12개의 방이 필요하다. 왜냐하면 3학년 남학생을 배정하기 위해 방 두 개가 필요하고..
문제https://www.acmicpc.net/problem/3273 문제 설명n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i 입력첫째 줄에 수열의 크기 n이 주어진다. 다음 줄에는 수열에 포함되는 수가 주어진다. 셋째 줄에는 x가 주어진다. (1 ≤ n ≤ 100000, 1 ≤ x ≤ 2000000)출력문제의 조건을 만족하는 쌍의 개수를 출력한다.풀이이 문제는 입력된 n개의 숫자들 중 두 수의 합이 x가 될 수 있는 모든 경우의 수를 구하는 문제이다. O(n^2)으로 풀이하게 되면 시간 초과가 나오기 때문에 더 효율적인 방법으로 풀..
https://www.acmicpc.net/problem/1475 문제 설명다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)입력첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.출력첫째 줄에 필요한 세트의 개수를 출력한다. 풀이입력된 roomNumber를 string으로 변환하여, 해당 문제를 풀이했다. 입력된 roomNumber의 각 번호 갯..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이이 문제의 조건은 다음과 같다.짝수 인덱스에서는 arr에서 query[i]번 인덱스를 제외하고 배열의 query[i]번 인덱스 뒷부분을 잘라서 버립니다.홀수 인덱스에서는 arr에서 query[i]번 인덱스는 제외하고 배열의 query[i]번 인덱스 앞부분을 잘라서 버립니다.여기서 주의해야할 점은 여기서 얘기하는 짝수, 홀수 인덱스는 query[i]의 값이 아닌 i 값이라는 거다. 위 내용만 생각하면 문제 자체는 어렵진 않았다.#include using namespace std;bool IsEven(int num){ return num % 2 =..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이이 문제는 주어진 0 ~ 9 까지의 숫자들 중 없는 숫자를 더하고 반환하는 문제이다. 주어진 숫자들을 오름차순 정렬한 뒤, 없는 숫자를 찾는다.이때, 주어진 숫자가 8 이하 일 경우를 생각해서 9까지의 없는 숫자를 다시 한 번 찾는다.#include #include using namespace std;int solution(vector numbers) { int answer = 0, curNum = 0; sort(numbers.begin(), numbers.end()); for (int i = 0; i
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이이 문제는 num이 짝수 일 때는 num / 2를 하고, 홀수 일 때는 num * 3 + 1 규칙을 500번 적용시킨다 했을 때, 500번 안에 num이 1이 된다면 해당 규칙을 적용시킨 횟수를 반환하고, num이 1이 되지 않는다면 -1를 반환하는 문제이다. 쉬운 문제지만, num의 타입을 int가 아닌 long으로 변환한 뒤, 규칙을 적용시켜야 한다. (테스트 케이스 3번)using namespace std;int solution(int num) { if(num == 1) return 0; long n = num; for..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이이 문제는 철수와 동생이 롤케이크를 자르는 모든 경우의 수를 고려하여, 두 사람의 롤케이크 조각에 있는 토핑의 종류 수가 동일한 경우의 수를 모두 찾는 것이다. 해결 과정unordered_map을 사용하여 철수의 롤케이크 부분(leftCut)과 동생의 롤케이크 부분(rightCut)에 있는 각 토핑의 개수를 저장했다.초기 상태에서는 동생이 전체 롤케이크를 가지고 있다고 가정하고, 모든 토핑의 종류 수를 계산한다.그 다음, 철수가 왼쪽부터 한 조각씩 가져가는 것을 시뮬레이션하고, 철수가 전체 롤케이크를 가질 때까지 반복한다.각 단계에서 철수와 동생의 ..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이이 문제는 1 ~ 1000000 범위의 랜덤한 크기를 가지고 있는 귤을 k개 판매할 때, 판매한 귤 크기의 최소 갯수를 반환하는 문제이다. 난 맵을 이용하여 각 크기별 귤의 갯수를 구하고, value 기준으로 내림차순 정렬한 뒤, 갯수가 많은 크기의 귤 먼저 귤을 판매하여 귤 크기의 최소 갯수를 구했다.#include #include #include#includeusing namespace std;unordered_map boxMap;bool cmp (pair box01, pair box02){ return box01.second > box0..