전체 글
[백준 - 1629] 곱셈 [C++]
1. 문제 https://www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 2. 풀이 로직은 맞은채로 계속 틀렸다.. 간과하고 있었던 것은 곱셈하면 int 범위를 훨씬 넘어가버린다는 것.. 결국 리턴타입을 long long int로 변경해서 해결.. 이 문제의 핵심 세가지) 1. INT_MAX의 제곱은 long long int 범위에 들어온다. 2. a^5 = a^2 * a^3으로 쪼갤 수 있다. 3. (A * B) % M = ((A % M) * (B % M)) % M; 3. 코드 #include using namespace..
[백준 - 11286] 절댓값 힙 [C++]
1. 문제 https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 2. 풀이 우선순위 큐 비교 컨테이너를 직접 만들어서 껴주면 된다. 3. 코드 #include #include #include using namespace std; struct Compare { bool operator()(int a, int b) const { if(abs(a) == abs(b)) return a > b; return abs(a) > abs(b);..
[백준 - 18111] 마인크래프트 [C++]
1. 문제 https://www.acmicpc.net/problem/18111 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net 2. 풀이 높이를 기준으로 완전탐색을 해보면된다. 처음에는 0~256까지 모든 높이에 대해 탐색을 했더니 70퍼센트에서 계속 틀렸었다. 로직에는 문제가 없었으나 높이의 탐색 범위가 문제였다. 그래서 탐색의 최대 높이(maxPossibleHeight)를 설정했더니 맞았다. 틀렸던 이유) 지형의 높이를 균등하게 맞추기 위해서는 평균 높이 이상으로 설정할 수 없다. 만약 평균 높이보다 더 ..
[백준 - 1931] 회의실 배정 [C++]
1. 문제 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 2. 풀이 끝나는 시간이 빠른 회의를 우선적으로 선택함으로써 남은 시간을 최대한 활용할 수 있게 됩니다. 다시 말해, 어떤 회의가 빠르게 끝나면 그 후에 다른 회의들을 더 많이 배정할 수 있습니다. 예시) 회의 리스트: A: 1-4 B: 3-5 C: 0-6 D: 5-7 E: 3-8 F: 5-9 G: 6-10 H: 8-11 I: 8-12 J: 2-13 K: 12-14 1. 끝나는 시간을 기준으로 오름차순 정렬을 합니다: A: 1-4 B: 3-5 D: 5-7 F: 5-9 G: 6-10 C: 0-6 E: 3..
[프로그래머스] 신고 결과 받기 [C++]
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 문제의 주어진 조건대로 구현하면 되는 문제입니다. User라는 클래스를 만들어서 사용했습니다. 코드에 대한 설명은 주석으로 작성했습니다. 3. 코드 #include #include #include #include using namespace std; class User { public: string name; // 해당 유저의 이름 set reportUserList; // 해..
[프로그래머스] 체육복 [C++]
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 그리디 문제이다. 체육복을 빌려줄 수 있으면 즉시 빌려준다. 그리고 여전히 체육복을 빌리지 못한 학생의 수를 세어서 전체 학생수에서 제외시켜준다. 3. 코드 #include #include #include #include using namespace std; int solution(int n, vector lost, vector reserve) { // 잃어버린 학생과 여벌을..