마음만은 새내기

항상 초심을 잃지 않고 생활하겠습니다~!

프로그래밍/Baekjoon Online Judge 60

BOJ 문제의 난이도를 계산중이에요...

저번에는 BOJ Tier라고 불리는 문제 추천 사이트가 있었는데요, 최근에 과도한 웹 스크래핑 금지 규칙이 생겨서 이 사이트를 닫았다는 소식을 접했죠... ㅠ.ㅠ (그렇다고 API를 기다릴 수도 없는 상황...) 그래서 제가 진행중인 (초대박) 대규모 프로젝트! 바로, BOJ 문제들의 난이도를 계산하는 작업! 하지만, 이를 위해서는 모든 사용자들의 푼 문제 수, 약 1300만여건(?!)에 달하는 채점 결과를 모두 가져와야하죠... ㅠ.ㅠ (양이 너무 많아서... 한 달에 한 번 갱신 예정!) 지금 글을 작성하는 시점에는, 2019년 05월 31일까지의 채점 데이터를 모두 가져왔고, 여기에 재채점도 반영 완료! 그리고, 제가 직접 DB에 저장 및 C++로 난이도 계산기를 만들어서 각 문제의 난이도를 계산하..

BOJ 2740번(행렬 곱셈) 문제 풀이

★ solved.ac 난이도 : B1 (2021년 12월 29일 기준) [문제 링크] 2740번: 행렬 곱셈 첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개 www.acmicpc.net [문제 분석] 두 행렬의 곱을 구하는 문제 [풀이] 이 문제는 두 행렬이 주어졌을 때, 두 행렬의 곱을 구하는 문제입니다. 두 행렬의 곱을 구하려면, (행렬 A) = N*M, (행렬 B) = M*K 크기여야 합니다. (즉, 행렬 A의 열의 개수와 행렬 B의 행의 개수가 같아야겠죠?) [행렬의 곱 구하기] (여기에서 Aij = 행렬 A의 (i, j) 위치를 나타..

BOJ 15595번(정답 비율 계산하기) 문제 풀이

★ solved.ac 난이도 : S3 (2021년 12월 29일 기준) [문제 링크] 15595번: 정답 비율 계산하기 첫째 줄에 어떤 문제의 총 제출 횟수 N(1 ≤ N ≤ 200,000)이 주어진다. 둘째 줄부터 N개의 줄에 각 제출의 정보가 제출 번호 순서대로 주어진다. 제출 정보는 총 7가지가 공백 하나로 구분되어져 있 www.acmicpc.net [문제 분석] BOJ에서 정답률 계산 공식을 구현하는 문제 [풀이] 이 문제는 제출 정보가 주어졌을 때, 정답률을 계산하는 문제입니다. (계산 공식) 정답률 = (정답자 수) / ((정답자 수) + (각 정답자가 정답을 받기 전까지 틀린 횟수의 총 합)) * 100 (단위는 % 입니다.) 단, 정답자 계산 시 관리자 제출은 제외해야 합니다. 만약, 이를..

BOJ 1065번(한수) 문제 풀이

★ solved.ac 난이도 : S4 (2021년 12월 29일 기준) [문제 링크] 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net [문제 분석] (문제에서) 한수의 개념을 파악하고, 조건에 맞는지 파악하는 문제 [풀이] 먼저, '한수'의 개념을 정확히 파악하셔야 합니다. {정의} 양의 정수 X에 대해서 각 자릿수가 등차수열을 이루는 수 여기에서는 N이 주어졌을 때, N 이하의 한수의 개수를 세는 문제입니다. (여기에서 N의 범위는 1,000 이하입니다.) 여기에서 1,000은 한수가 아니므로 잠시 접어두시고,..

BOJ 채점 환경과 비슷하게! Ubuntu에 컴파일러 설치하기

안녕하세요~!제가 BOJ에서 문제를 풀면서, 채점 환경이 Ubuntu라는 것을 알게 되었어요...그래서!! 이번에는, BOJ 채점 환경과 유사하게 Ubuntu를 설치했다고 가정하고, 각종 컴파일러를 설치해보겠습니다. Ubuntu를 아직 설치하지 않으셨다면, 설치 ISO 이미지 파일이 필요한데요,현재 최신 버전은 18.04 LTS이지만, 여기에서는 채점 환경에 맞추어 16.04 LTS로 설치하겠습니다.(여기에서 LTS는 long-term support의 약자로, 장기 지원을 의미합니다. 반드시!! LTS로 설치해주세요!!)[Ubuntu Desktop 16.04.5 LTS 64비트 다운로드](위 링크는 국내의 Kakao 미러 사이트 링크입니다.) 이제부터 필자가 주로 사용하는 컴파일러를 설치해보겠습니다.(컴..