본문 바로가기
반응형

백준45

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.
BOJ 2609 - 최대공약수와 최소공배수 / Swift 문제 링크 : https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 풀이 최소공배수, 최대공약수 공식을 그대로 구현하면 된다. 코드 import Foundation var input = readLine()!.split(separator: " ").map{ Int($0)! } var a: Int = input[0] var b: Int = input[1] var tmp: Int = 0 var larger: Int = a >= b ? a : b var smaller: Int = a < b ? a : b //최대 공약수 w.. 2022. 4. 11.
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.
반응형