마음만은 새내기

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

프로그래밍 92

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

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

인터넷으로 구입한 (일명) '종만북'이 도착했어요~!

안녕하세요~! 저도 요즘 시험 공부를 하느라 너~무 바빴어요... ㅠ.ㅠ 하지만, 시험이 끝나면 찾아오는 방학! 방학 때 2학기 예습도 하고, 여기에 알고리즘 공부를 열심히 하고자, 저번에 구입한 (일명) '탑코더 빨간 책' 외에 '종만북'을 구입했어요 ^^ [종만북 가격] 정가 : 50,000원 (약간 비싼 편... 이지만 그만큼 열심히! 공부해야죠 ^^) 인터넷 판매가 : 45,000원 (YES24 기준, 10%할인 + 5% 적립 = 총 15%) 실 결제액 : 38,000원 (학교 편의점을 자주 가는데요, 여기에서 누적된 포인트를 모두 사용했죠...) 그리고 어제(2019.06.12.), 책이 도착했죠 ^^ (도착한 택배 상자) (상자를 개봉하니 2권의 책이 있었어요) '종만북'은 총 2권으로 구성되..

CodeGround 연습문제 : 프로그래밍 경진대회 풀이

★ 문제 본문 ★ 입력 형식 ★ 출력 형식 (문제 사진 출처 : codeground.org) ★ 문제 해법 먼저, 입력으로 주어진 데이터를 오름차 순으로 정렬해야합니다. 그 다음, 우승 기준 점수를 계산해야하는데요, 점수가 가장 낮은 사람부터 N, N-1, ... , 2, 1을 더해보며 가장 큰 수를 기준 점수로 저장합니다. (이 수를 C로 하겠습니다.) 그리고 각 사람의 점수(S)에 대해 (S+N)>=C를 만족하는 경우를 세면 됩니다. ★ 소스 코드 (C)

CodeGround 연습문제 : 숫자 골라내기 풀이

★ 문제 요약 N개의 수 중에서 홀수 번만 나오는 모든 수를 XOR 연산한 결과를 계산하는 문제 ★ 문제 해법 단순히 데이터를 입력받고 홀수 번만 나오는 수를 찾아서 XOR 연산을 하게 된다면, 100% 시간 초과!! 하지만, XOR 연산의 성질을 알면, 쉽게 풀 수 있음. XOR 연산의 성질 중 하나!! X XOR N XOR N = X가 된다는 점!! 즉, 어떤 수를 짝수 번 XOR 하게 된다면... 원래 수로 되돌아오겠죠?? 결과적으로, 숫자를 입력만 받고, 계속 XOR 연산만 해주면 됩니다. ★ 소스 코드 (C)

Project Euler #1 (Multiples of 3 and 5) 문제 풀이

★ 문제 요약 N이 주어지면, N보다 작은 수 중에서 모든 3의 배수 또는 5의 배수의 합을 구하는 문제 예시 : N = 10일 때, 조건에 맞는 수는 3, 5, 6, 9이고, 이들의 합은 23 ★ 문제 해법 단순 반복문과 조건문을 사용할 수도 있지만(O(N)), N의 범위가 최대 10억이기 때문에, 시간이 매우 오래 걸림. 하지만, 1부터 N까지의 합을 구하는 공식을 알면, 쉽게 풀 수 있음. (1부터 N까지의 합 = N(N+1)/2) 여기에서는 이 과정을 함수로 구현 (함수 이름 : S(N)) 즉, S(N) = N(N+1)/2 1부터 N까지 3의 배수의 합 = S(N/3)*3 1부터 N까지 5의 배수의 합 = S(N/5)*5 (단, N보다 작은 수만 계산하므로, N 대신 N-1로 계산할 것!) 이 과..