본문 바로가기

백준

(5)
[C++] 백준 1441 나누어 질까 https://www.acmicpc.net/problem/1441 1441번: 나누어 질까 첫째 줄에 A의 크기 N과 L, R이 주어진다. N은 18보다 작거나 같은 자연수이고, L은 1,000,000,000보다 작거나 같은 자연수, R은 L보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다. 둘째 줄에 A www.acmicpc.net 먼저 R제한이 10^9이기 때문에 원소를 받아 직접 에라체를 만드는 것은 불가능하다. 따라서 비트마스킹을 이용한 포함 배제의 원리를 사용하여 풀었다. N이 18이기 때문에 2^18로 시간 내에 충분히 해낼 수 있다. 한 가지 조심해야 하는 점이 있는데 수열의 각 원소의 제한은 10^9이므로 원소간의 lcm이 R을 넘어가는 경우 멈춰주어야 한다. 예를들어..
[C++] 백준 21740 도도의 수학놀이 내가 만든 문제지만 중간중간 함정도 있고 신경써야 할 부분도 많아 어려웠다. 일단 모든 수를 180도 회전시키고 생각을 해봐야 한다. 1. a+b 와 b+a 의 대소비교를 통하여 a와 b중 뭐가 앞에 와야하는 지 알 수 있다. bool cmp(string a, string b) {return a+b > b+a;} 우리가 봐야 하는 것은 두 숫자를 이어붙였을 때의 숫자이다. 따라서 문자열로 두고 a를 앞에 붙인 것과 b를 앞에 둔 것을 비교해서 정렬할 수 있다. 문자열로 비교해서 차이가 날 수 있지 않냐는 우려가 있을수 있지만 a+b와 b+a의 문자열의 길이는 같다. 따라서 a+b와 b+a의 대소비교는 int(a+b)와 int(b+a)의 대소비교와 똑같게 나온다. 2. 한 번 더 사용해야하는 수는 가장 큰..
[파이썬] 백준 15778 Yut Nori (윷놀이) 그냥 깡구현 문제인데 한번 꼬이면 답이 안보인다 ㅠㅠ 이번엔 내가 구현해 나가는 과정을 한 번 써 볼 것이다. 1. 판 그리기 pa = [ '..----..----..----..----..----..', '.. .. .. .. .. ..', '| \\ / |', '| \\ / |', '| \\ / |', '| .. .. |', '.. .. .. ..', '.. \\ / ..', '| \\ / |', '| \\ / |', '| .. .. |', '| .. .. |', '.. \\ / ..', '.. \\ / ..', '| \\ / |', '| .. |', '| .. |', '| / \\ |', '.. / \\ ..', '.. / \\ ..', '| .. .. |', '| .. .. |', '| / \\ |..
[파이썬] 백준 17215 볼링 점수 계산 먼저 규칙이 주어져있는데 굉장히 복잡하다. 0-1. 프레임은 총 10프레임이다. 0-2. 10프레임에 S나 P를 치면 추가기회가 있다. 1. 점수는 숫자, S, P, -로 들어온다. 2-1. S와 P를 치면 다음 기회에 얻은 점수만큼 추가점수가 있다. 2-2. 10프레임의 추가기회에는 추가점수가 주어지지 않는다. 대충 이정도만 알면 되는 것 같다. 일단 가장 처음 해야할 것은 문자를 숫자로 바꿔주기이다. 여기서 문제가 P처리인데 이전 인덱스의 점수 정보를 10에서 빼주면 쉽게 얻을 수 있 다. def getscore(a): if s[i] == 'S': add = 10 #if frame < 10: #plus.append(a+1) #plus.append(a+2) ---------------------- el..
[파이썬] 백준 9735 삼차방정식 처음에 문제를 보면 입력으로 주어지는 방정식은 정수 해를 적어도 한 개 갖는다고 나와 있다. 그렇다면 이 문제의 풀이로는 두 개를 생각할 수 있을 것 같다. 1. 극대극소를 찾아 구간을 나눈 후 최대 3개의 구간에 대하여 이분탐색을 진행하기 이런 함수가 주어졌다고 가정해보자 f'(x)를 구하여 극점들을 찾고 (-,극점1), (극점1,극점2), (극점2,+) 세 개의 구간에서 이분탐색을 진행하여 해들을 구해보려고 했지만 극댓값이나 극솟값의 좌표가 실수라면 근을 구할때 오차가 날 것 같아서 시도하지 못했다. 2. 정수해로 인수분해를 하여 이차식으로 만든 후 근의공식으로 구하기 이 방법을 사용하려면 정수해를 구해서 인수분해를 해야 하는데 우리가 옛날부터 해를 찾을 때 많이 썼던 방법이 있다. x = ±(D의 ..