본문 바로가기
반응형

C++114

BOJ 15829 - Hashing / C++ 문제 링크 : https://www.acmicpc.net/problem/15829 15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정 www.acmicpc.net 풀이 해당 수식을 계산하는 과정에서 31^49와 같은 매우 큰 수를 계산하게 되므로 C++의 pow를 사용하면 오버플로우가 발생한다. 따라서 직접 pow 함수를 구현하며 계산 과정에서 modulo 연산을 수행해준다. 나머지는 단순 수식 구현이므로 생략한다. 코드 #include #include using namespace std; #define ull unsigned long lo.. 2022. 4. 14.
BOJ 10816 - 숫자 카드 2 / C++ 문제 링크 : https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 풀이 이전의 숫자 카드 문제는 아래와 같이 풀이하였다. https://appdevorsec.tistory.com/42 하지만, 숫자 카드 2는 시간 제한이 더 줄어들었으므로 이진 탐색을 통해 풀어야한다. lower_bound는 찾으려는 값보다 같거나 큰 값이 존재하는 인덱스, upper_bound는 찾으려는 값을 초과하는 첫 인덱스이다. 예를 들어,.. 2022. 4. 13.
프로그래머스 - 피로도 / C++ 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/87946 코딩테스트 연습 - 피로도 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던 programmers.co.kr 풀이 주어진 던전들을 순열로 돌며 직접 카운트해주면 된다. 순열을 사용하기 위해 정렬을 해줘야한다. 각 경우의 수마다 필요 피로도보다 현재 피로도가 크면 현재 피로도에서 소모 피로도를 빼주는 연산을 수행하고 카운트를 센 뒤 max를 통해 최댓값을 갱신한다. 코드 #include using namespace std; int solution(i.. 2022. 4. 12.
BOJ 5637 - 가장 긴 단어 / C++ 문제 링크 : https://www.acmicpc.net/problem/5637 5637번: 가장 긴 단어 단어는 알파벳(a-z, A-Z)과 하이픈(-)으로만 이루어져 있다. 단어와 다른 문자(마침표, 숫자, 심볼, 등등등...)로 이루어진 글이 주어졌을 때, 가장 긴 단어를 구하는 프로그램을 작성하시오. Apple의 www.acmicpc.net 풀이 "E-N-D"라는 문자열이 들어오기 전까지 계속해서 입력을 받는다. 받은 문자열은 소문자로 바꿔주고 'a'와 'z'사이 또는 '-'일 경우 임시 단어 변수인 word에 저장한다. 만약 다른 문자가 나왔다면 단어가 끝났으므로 단어의 길이를 측정하여 최댓값을 갱신한다. 최댓값이라면 정답 단어를 바꿔주고 다시 임시 단어 변수를 비워준다. for문이 끝났을 때에도.. 2022. 4. 10.
반응형