본문 바로가기

분류 전체보기337

[c++] lowe_bound, upper_bound, rotate lower_bound() : 타겟 이상(타겟과 같으면 포함)인 요소의 첫 위치를 찾음 lower_bound(탐색시작위치, 탐색끝내는 위치, 타겟) upper_bound() : 타겟 초과(같으면 포함 안함)인 요소의 첫 위치를 찾음 upper_bound(탐색시작위치, 탐색끝내는 위치, 타겟) lower, upper모두 타겟을 찾지 못할 시, end() 의 위치를 가리킴 - 반복자이므로 처음부터 한 번 쭉 훑고가기때문 **rotate() : 2차원 배열의 경우 90도 단위로 회전을 시키거나, 1차원 배열을 옆으로 몇칸씩 밀때 사용한다 rotate(시작반복자, 첫 위치로 올 반복자, 종료 반복자) 2022. 6. 13.
모듈러 연산 모듈은 %연산에서 나누는 수를 말한다 c = a%b // a를 b로 나누고 남은 나머지가 c이다 c = a mod b // b 를 모듈이라 한다 모듈러 연산은 % 를 사용하여 남은 나머지를 연산하는 것을 말한다 외워두면 몇가지 공식이 있어서 아래에 정리한다 a ≡ b mod n 이고 b ≡ c mod n 이면 a ≡ c mod n [ ( a mod n) + (b mod n) ] mod n = (a + b) mod n [ ( a mod n) - (b mod n) ] mod n = (a - b) mod n [ ( a mod n) * (b mod n) ] mod n = (a * b) mod n 2022. 6. 10.
에라토스테네스의 체, 소수판별법 에라토스테네스의 체 소수를 걸러내는 방법, 소수의 배수(합성수)들을 하나씩 지워나가 남는 것들은 소수라는 결론에 도달하는 방식이다 소수 판별법 소수는 1 과 자기 자신으로만 나누어 떨어지므로, n 이하의 모든 자연수를 대입하여 1외에 수로 나누어 떨어지는지 확인하면 되지만 모두 계산할 필요없이 n의 제곱근 이하의 값이 1외의 수로 나누어 떨어지는지 확인하면 된다 왜냐하면 n 이 소수가 아닌 합성수라면, n = a * b 로 나타낼 수 있는데(a,b는 1외의 자연수) a와 b는 모두 n의 제곱근 이하의 값을 가지므로, n의 제곱근에서 나누어지는 수(a와 b) 가 있는지만 확인하면 소수인지 아닌지를 구분 가능한것이다. 제곱근 n이하에서 나누어 떨어지면 합성수, 나누어 떨어지지 않으면 그 수는 소수이다 2022. 6. 10.
[c++] 제곱, 제곱근 함수 pow, sqrt pow() : 변수의 제곱을 구할때 사용하는 함수 a의 n승 을 구하고자 할때 a^n 이라 한다. 아래와 같이 함수로 구현가능하다 pow(a,n) // 숫자 a의 자료형에 맞게 암묵적 형변환이 이루어진다 sqrt() : 변수의 제곱근을 구할때 사용하는 함수 a에 제곱근을 씌우고자 할때 사용한다. 루트 a 와 같다. 아래와 같이 함수로 구현 가능하다 sqrt(a) // a 가 음수이면 NaN를 반환한다 # 두 함수 모두 앞에 자료형을 붙여 사용하자 2022. 6. 10.