💡 Problem Solving
[백준 - 7490] 0 만들기 [C++]
1. 문제 https://www.acmicpc.net/problem/7490 7490번: 0 만들기 각 테스트 케이스에 대해 ASCII 순서에 따라 결과가 0이 되는 모든 수식을 출력한다. 각 테스트 케이스의 결과는 한 줄을 띄워 구분한다. www.acmicpc.net 2. 풀이 전형적인 브루트포스 문제이다.. 나의 경우 두번 '출력 형식이 잘못되었습니다' 를 받았었는데.. '각 테스트 케이스의 결과는 한 줄을 띄워 구분한다.' 이것을 간과한채 제출했었다.. 케이스별로 한 줄씩 띄워주니까 맞았다.. 문제는 연산자 3개로 표현가능한 모든 식을 만들어보고 그 식을 계산했을 때 0인지 판정하면된다. c++에는 eval함수가 없어서 직접 구현했다.. 3. 코드 #include #include #include #..
[백준 - 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; // 해..