Loading...

골드바흐의 추측을 이용해 정수 n을 k개의 소수 합으로 표현하기

25309번: K개의 소수 (acmicpc.net) 정수 n을 k개의 소수 합으로 표현하라는 문제 여기서 핵심은 서로 다른 k개의 소수가 아니라, 같은 소수를 사용해도 좋다. 그리고 문제는 n이 최대 $10^{8}$이고 k는 최대 10000이라 단순한 방법으로는 어렵다 먼저 생각할 수 있는 것은 가장 작은 소수가 2이기 때문에, 2를 k개 사용하여 2k가 만들 수 있는 정수의 최솟값이다. 따라서 n = 2k이면 일단 분해하는 것이 가능하다. n,k = map(int,input().split())if n   만약 k = 1이면 n 자체로 소수인지 아닌지 판단하면 된다.  $O(\sqrt{n})$에 소수 판단할 수 있다. def is_prime(n): for i in range(2,int(n**..

2024. 5. 23. 02:12

배열을 뒤집었을때 생기는 반전 수의 개수 구하기

25339번: 반전 수와 쿼리 (acmicpc.net)  반전 수는 i P[j]인 (i,j)의 개수를 말한다. 배열이 [3,2,1]이면 반전수는 (인덱스 말고) (3,2), (3,1), (2,1)로 3개가 있다. l번, r번을 서로 교환하는 쿼리 [l,r]의 배열을 서로 뒤집는 쿼리가 주어질 때, 매 쿼리마다 수열의 반전 수를 2로 나눈 나머지를 구하는 문제 ---------------------------------------------------------------------------------------------------------------------------------------------------------- 배열 길이와 쿼리 수가 엄청나다보니 단순한 방법으로는 시간초과 이 문제는..

2024. 5. 23. 02:01

Unity&C# 수집형 오브젝트 만들기1 - 오브젝트 회전시키기

hierarchy에서 cube를 만들고, 플레이어 물체와는 눈에띄게 위치나 rotation 등을 조정하고, 색깔을 바꿔서 만든다 rotation을 45 45 45로 해주면 큐브가 기울어져있음 rotation 값을 조정하면 큐브가 기울어지는 각도가 달라진다는 것을 알 수 있다     게임같은거 해보면 수집형 물체는 회전해서 눈에 띄도록 만든 경우가 있는데..회전시킬려면 어떻게 해야할까 Rotator라는 script를 만들고 pickup 오브젝트에 붙여준다 using System.Collections;using System.Collections.Generic;using UnityEngine;public class Rotator : MonoBehaviour{ // Update is called once ..

2024. 5. 22. 02:57

floating point와 fixed point 간단하게

1. floating point와 fixed point의 차이 fixed point는 부호(+ , - )와 정수부와 소수부로 나누어서 실수를 저장하는 것 만약 32bit인 경우 예를 들면 정수는 8비트 소수부는 23비트만 저장하겠다고 고정을 하고 실수를 저장함 정수를 표현하고자하는 비트 수를 늘린다면 더 큰 숫자를 표현할 수 있지만  그만큼 소수부 비트가 줄어들어서 정밀한 숫자를 표현하기 어렵다 반면 소수부 비트를 늘린다면 정밀한 숫자를 표현할 수는 있어도 큰 숫자를 표현하기는 어렵다  이런 문제를 해결하기 위해 floating point 방식이 등장했다 모든 실수를 부호(+,-)와 가수부와 지수부로 나누어 저장함   소수점을 옮긴다는 생각은 의미가 없는게  floating point는 12345를 $1..

2024. 5. 18. 02:34

Unity 물체가 벽과 충돌할 수 있는 이유는 collider의 is trigger

hierarchy에서 create empty로 gameobject 생성하고 Walls로 변경 또 3D object를 생성하고, West Wall로 변경 오른쪽의 inspector에서 transform 부분에 reset을 누르면 위치를 원점으로 옮길 수 있다    그리고 Walls에 종속시킨다.   scale을 조정해서 벽을 만들거니까 게임판의 크기에 맞춰본다    position 값을 조정해서 벽이 되도록 끝에 맞춰준다    materials를 만들어서 벽이 구분되도록 색도 바꿔주자     4방향으로 벽을 만들어야하는데, 위 과정을 3번 반복하면 되겠지만 이미 만든 West Wall을 duplicate하면 똑같은 크기의 벽을 만든다     복제한 벽의 position, rotation을 적절히 조절해서,..

2024. 5. 18. 00:36

문자열 hashing function 빠르게 계산하는 방법

1. 왜 문자열의 hashing이 필요한가? https://deepdata.tistory.com/960 문자열 해싱(hashing) 기본 개념 배우기String Hashing - Algorithms for Competitive Programming (cp-algorithms.com) String Hashing - Algorithms for Competitive Programming String Hashing Hashing algorithms are helpful in solving a lot of problems. We want to solve the problem of comparing stringdeepdata.tistory.com  두 문자열 S1, S2가 서로 같은지 다른지 비교하고 싶을 때가 있..