본문 바로가기

수학8

[백준-실버5] 2581번 소수 (수학, 파이썬) https://www.acmicpc.net/problem/2581 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net - 소수를 판별하는 문제이다. - 소수를 코드로 구현할때는 2가지 방법이 있다. ( is_prime 함수 구현, 에라토스테네스의 채) - 에라토스테네스의채는 1 ~ N 범위 안에 있는 모든 소수를 구하는 방법이다. (시간 효율이 좋음) -> 구현 방법은 가장 작은수부터 배수를 지워나가는 방법이다. -> 0, 1은 소수가 아니므로 False처리를 미리 해준다. -> 2부터 2를 제외한 2의 배수를 다 Fals.. 2022. 3. 4.
[백준-브론즈1] 1193번 분수찾기 (수학, 파이썬) https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net - 무한히 큰 배열에 순서대로 분수가 적혀있고, 지그재그 순서대로 n번째 분수일때, 입력으로 주어진 n번째 분수를 찾는 문제 - 규칙을 찾는데 오래 고민했다,, 체감상 브론즈보다 어려운 느낌 - 규칙은 분수의 순서가 사선을 기준으로 움직인다. - 따라서, 가장 우선 x번째 분수가 몇번째 라인에 있는지 찾아주었다. --> line을 1씩 증가시키고, max_num에 line을 누적해서 더했다.(line = n일때, 그 라인은 n개의 분수를 포함한다) - 그 후 max_num과 x의 갭을 구한다. - 사선 라인이 짝수번째 일때는 순.. 2022. 3. 4.
[백준-브론즈3] 10250번 ACM호텔(수학, 파이썬) https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net - n번째 손님의 방호수를 구하는 문제 - 손님이 묶을 층 수는 n을 층수로 나눈 나머지이다. 이때 맨 윗층일때 (n % h ==0)일때는 h층 --> n = 12, h = 6일때 이 손님은 6층에 묵게됨 - 손님의 방 호수는 n/h를 올림한 값이여서 math.ceil으로 올림처리 - 이 때 호수가 1자리 수이면 앞에 0을 붙여준다. --> 4층, 1호이면 출력을 401로 해야하기 때.. 2022. 3. 4.
[백준-골드4] 10830번 행렬 제곱 (수학, 선형대수, 파이썬) https://www.acmicpc.net/problem/10830 - 우선 입력을 받고, 행렬 연산 함수를 정의하였다. - 이 때, 계산을 마치고 1000으로 나눈 후 나머지를 result에 담아주었다. --> 여기서 1000으로 안나누고 최종에서 나누면 시간초과 뜸,,, (이유는 모름 ㅎ) - 시간 초과의 늪에서 허우적 거리다가 다른 블로그를 참고했다. - 이진법으로 b를 변환하여 연산량을 줄이는 방법 - 맨 끝 자리수부터 2진법 자릿수 만큼 제곱해주고, 제곱한 행렬 끼리 곱해준다. n, b = map(int, input().split()) matrix = [] for _ in range(n): matrix.append(list(map(int, input().split()))) def matrix_m.. 2022. 3. 1.