티스토리 뷰
반응형
15829번: Hashing
APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정
www.acmicpc.net
// 1.
const fs = require('fs');
const [L, str] = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const arr = Array.from(str);
// 2.
const r = 31n;
const M = 1234567891n;
// 3.
let result = 0n;
let pow = BigInt(1);
for(let i=0;i<L;i++) {
result += BigInt(arr[i].charCodeAt(0) - 96) * pow;
pow *= r;
}
// 4.
if(result >= M) result %= M;
console.log(Number(result));
- 구조 분해 할당을 통해 필요한 값 L, str를 초기화한다.
- Bigint를 사용하기 위해 r과 M을 추가로 초기화한다.
- L만큼 for 반복문을 반복하여 arr 배열로부터 값을 구한다.
- M보다 큰 경우에만 모듈러 연산을 수행하고, BigInt인 result 값을 Number로 캐스팅하여 출력한다.
결과
8572 KB / 132 ms
메모
- Bigint에 대해 알아볼 것.
'Dev. > coding test' 카테고리의 다른 글
| [BaekJoon] 1620 나는야 포켓몬 마스터 이다솜 (node.js) (0) | 2021.07.08 |
|---|---|
| [BaekJoon] 2292 벌집 (node.js) (0) | 2021.07.06 |
| [BaekJoon] 2869 달팽이는 올라가고 싶다 (node.js) (0) | 2021.07.05 |
| [BaekJoon] 10815 숫자 카드 (node.js) (0) | 2021.06.30 |
| [BaekJoon] 11399 ATM (node.js) (0) | 2021.06.30 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Spring Cloud Config
- Gradle
- AWS IoT
- Git
- shell
- Linux
- kotlin
- Java
- Node.js
- IntelliJ
- RancherDesktop
- pgloader
- mysql
- JEST
- etc
- jQuery
- Docker
- Vault
- Puppeteer
- react
- postgresql
- spring boot
- javascript
- 코딩테스트
- AWS
- JPA
- eureka
- Database
- terraform
- hashicorp
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함